Python 3.x 在Python中使用OpenCV进行OMR工作表扫描
当我扫描OMR表来检测轮廓时,它并不是检测所有的矩形。步骤如下:Python 3.x 在Python中使用OpenCV进行OMR工作表扫描,python-3.x,opencv3.0,Python 3.x,Opencv3.0,当我扫描OMR表来检测轮廓时,它并不是检测所有的矩形。步骤如下: 加载彩色图像 转换为灰色并调整大小 使用高斯模糊器模糊图像 基于Canny的边缘检测 寻找等高线 可视化结果 但它并没有显示所有的矩形。谁能帮我解决这个问题 随附OMR表供参考: 我的建议如下: 加载图像 img至灰色 模糊不清 应用等高线 打印轮廓并对轮廓进行排序 如果等高线具有相同的面积,则绘制等高线(因为您感兴趣的区域都是相同的形状) 欢迎来到SO!请编辑您的问题并添加您使用的代码(请参阅)。没有实际实现的步骤说明不足以在此
我的建议如下:
欢迎来到SO!请编辑您的问题并添加您使用的代码(请参阅)。没有实际实现的步骤说明不足以在此处获得帮助。
import cv2
import numpy as np
img=cv2.imread('test.png') #read image
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #turn image to gray
blur = cv2.GaussianBlur(gray,(3,3),0) #add blur
edges = cv2.Canny(blur,50,100) #find edges
contours, hierarchy = cv2.findContours(edges,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) #find contours
cv2.drawContours(img,contours,-1,(0,255,0),2) #draw contours
cv2.imshow('Contours in Green',img) #show contours in green
#Now you need to sort them out.