OpenCV es una enorme biblioteca de código abierto para visión artificial, aprendizaje automático y procesamiento de imágenes. OpenCV admite una amplia variedad de lenguajes de programación como Python, C++, Java, etc. Puede procesar imágenes y videos para identificar objetos, rostros o incluso la escritura a mano de un ser humano. Cuando se integra con varias bibliotecas, como Numpy. Que es una biblioteca altamente optimizada para operaciones numéricas, entonces la cantidad de armas aumenta en su Arsenal, es decir, cualquier operación que se pueda hacer en Numpy se puede combinar con OpenCV.
SQLite es un motor de base de datos SQL autónomo, de alta confiabilidad, integrado, con todas las funciones y de dominio público. Es el motor de base de datos más utilizado en la World Wide Web. Python tiene una biblioteca para acceder a bases de datos SQLite, llamada sqlite3, destinada a trabajar con esta base de datos que se incluye con el paquete Python desde la versión 2.5.
En este artículo, almacenaremos una imagen OpenCV en la base de datos sqlite3 con Python. Tomemos esta imagen “gfg.png” como ejemplo:
Enfoque paso a paso:
- Primero importe las bibliotecas necesarias.
Python3
# import necessary libraries import cv2 import sqlite3 import pandas as pd
- Conéctese a la base de datos sqlite3.
Python3
# connect to database conn = sqlite3.connect("gfg.db")
- Cree un objeto de cursor y obtenga la ubicación actual del cursor:
Python3
cursorObject = conn.cursor()
- Cree una nueva tabla y confírmela a la base de datos.
Python3
# create a table cursorObject.execute("CREATE TABLE imgfg(id string, img blob)") conn.commit()
- Abra la imagen con open() en modo lectura.
Python3
im = open( 'gfg.png', 'rb' ).read()
- Inserta la imagen en la tabla.
Python3
# open the image you want to store in read more im = open('gfg.png', 'rb').read() conn.execute("INSERT INTO imgfg VALUES(?,?)", ("pattern", sqlite3.Binary(im)))
La declaración anterior abre la imagen y luego la convierte en un patrón simplemente interpretando el contexto BLOB binario. Finalmente, almacena ese patrón en la tabla.
- Comprometerse con la base de datos.
Python3
conn.commit()
- Almacene la tabla sqlite3 como un archivo CSV con pandas.
Python3
# Use pandas to create a dataframe from # the table and save it as a csv table = pd.read_sql_query("SELECT * FROM imgfg", conn) table.to_csv("imgfg" + '.csv', index_label='index')
El contenido se almacena en la variable de la tabla y luego se convierte a un archivo CSV y se guarda en el sistema.
- Mostrar el contenido de la tabla.
Python3
# display table print(table)
A continuación el programa completo:
Python3
# import necessary libraries import cv2 import sqlite3 import pandas as pd # connect to database conn = sqlite3.connect("gfg.db") cursorObject = conn.cursor() # create a table cursorObject.execute("CREATE TABLE imgfg(id string, img blob)") conn.commit() # open the image you want to store in read more im = open('gfg.png', 'rb').read() conn.execute("INSERT INTO imgfg VALUES(?,?)", ("pattern", sqlite3.Binary(im))) conn.commit() # Use pandas to create a dataframe from # the table and save it as a csv table = pd.read_sql_query("SELECT * FROM imgfg", conn) table.to_csv("imgfg" + '.csv', index_label='index') # display table print(table)
Producción:
CSV generado:
Publicación traducida automáticamente
Artículo escrito por soumibardhan10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA