前言:
现时兄弟们对“二值化怎么实现”都比较重视,同学们都想要学习一些“二值化怎么实现”的相关资讯。那么小编也在网络上汇集了一些对于“二值化怎么实现””的相关文章,希望咱们能喜欢,你们快快来了解一下吧!图片PNG、jpg、BMP等格式的内容,储存在MYSQL数据库中为二进制数据,用PYTHON3代码如何用第三方OpenCV、Dlib开源程序做人脸、车牌号码的比对?
首先,需要将储存在MYSQL数据库中的二进制数据转换为图片格式。可以使用Python的Pillow库来完成这个任务。
from PIL import Imageimport ioimport mysql.connector# 连接MySQL数据库mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase")# 查询二进制数据mycursor = mydb.cursor()mycursor.execute("SELECT image_data FROM images WHERE id = 1")result = mycursor.fetchone()# 将二进制数据转换为图片格式img = Image.open(io.BytesIO(result[0]))img.show() # 显示图片
然后,可以使用OpenCV和Dlib库来进行人脸和车牌号码的比对。
人脸比对的样例代码如下:
import cv2import dlib# 加载模型detector = dlib.get_frontal_face_detector()predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")# 加载图片img = cv2.imread('face.jpg')# 检测人脸gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)faces = detector(gray, 1)# 遍历检测到的人脸for face in faces: # 识别人脸特征点 shape = predictor(gray, face) # 绘制人脸区域和特征点 cv2.rectangle(img, (face.left(), face.top()), (face.right(), face.bottom()), (0, 255, 0), 2) for i in range(68): x = shape.part(i).x y = shape.part(i).y cv2.circle(img, (x, y), 2, (0, 0, 255), -1)# 显示图片cv2.imshow('result', img)cv2.waitKey(0)cv2.destroyAllWindows()
车牌号码比对的样例代码如下:
import cv2import pytesseract# 加载图片img = cv2.imread('plate.jpg')# 转换为灰度图像gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 二值化处理ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)# 去除噪声kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))opened = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel)# 查找轮廓contours, hierarchy = cv2.findContours(opened, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 遍历轮廓for contour in contours: # 获取轮廓的矩形框 x, y, w, h = cv2.boundingRect(contour) # 根据矩形框大小过滤掉不合适的轮廓 if w/h > 2.5: continue # 截取车牌号码区域 plate_roi = img[y:y+h, x:x+w] # 使用Tesseract OCR识别车牌号码 plate_text = pytesseract.image_to_string(plate_roi, lang='chi_sim') print("车牌号码:", plate_text)# 显示图片cv2.imshow('result', img)cv2.waitKey(0)cv2.destroyAllWindows()
标签: #二值化怎么实现 #python读取二进制文件转为图片