図面の「穴」を検出しようとしています。つまり、それらは完全な円ではなく、さまざまなサイズです。画像は常に白黒です。この問題を回避しようとして、Python ドキュメントから例を挙げました。
import cv2
from cv2 import *
import numpy as np
img = cv2.imread('hole_test.jpg',0)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(img,cv2.cv.CV_HOUGH_GRADIENT,1,5,param1=200,param2=100,minRadius=0,maxRadius=0)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# pinpoint hole
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imshow('holes detected',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
検出された穴はほとんどありません。この例の精度を向上させるためにできることはありますか、それともこれを達成するための最良の方法ではありませんか?
これは、私が見つけようとしている「穴」のさまざまなサイズ/形状を示すためのサンプル画像です。
リクエストに応じた例 2