Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在Python中使用OpenCV进行OMR工作表扫描_Python 3.x_Opencv3.0 - Fatal编程技术网

Python 3.x 在Python中使用OpenCV进行OMR工作表扫描

Python 3.x 在Python中使用OpenCV进行OMR工作表扫描,python-3.x,opencv3.0,Python 3.x,Opencv3.0,当我扫描OMR表来检测轮廓时,它并不是检测所有的矩形。步骤如下: 加载彩色图像 转换为灰色并调整大小 使用高斯模糊器模糊图像 基于Canny的边缘检测 寻找等高线 可视化结果 但它并没有显示所有的矩形。谁能帮我解决这个问题 随附OMR表供参考: 我的建议如下: 加载图像 img至灰色 模糊不清 应用等高线 打印轮廓并对轮廓进行排序 如果等高线具有相同的面积,则绘制等高线(因为您感兴趣的区域都是相同的形状) 欢迎来到SO!请编辑您的问题并添加您使用的代码(请参阅)。没有实际实现的步骤说明不足以在此

当我扫描OMR表来检测轮廓时,它并不是检测所有的矩形。步骤如下:

  • 加载彩色图像
  • 转换为灰色并调整大小
  • 使用高斯模糊器模糊图像
  • 基于Canny的边缘检测
  • 寻找等高线
  • 可视化结果
  • 但它并没有显示所有的矩形。谁能帮我解决这个问题

    随附OMR表供参考:


    我的建议如下:

  • 加载图像
  • img至灰色
  • 模糊不清
  • 应用等高线
  • 打印轮廓并对轮廓进行排序
  • 如果等高线具有相同的面积,则绘制等高线(因为您感兴趣的区域都是相同的形状)

  • 欢迎来到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.