Python と OpenCV でコンピューター ビジョン プログラムをプログラミングするのは初めてです。このパズルのグリッドのサイズを検出する必要があります。すべてのグリッドは正方形または長方形で、サイズは 5x5 から 27x36 です。この画像からすべての正方形を抽出する必要があります。この写真はスクリーンショットからのものです。主に携帯電話から写真を作成します。私がこれまでにやったこと:
グレースケールに変換してから、ガウスぼかしを使用してカメラの写真からノイズを除去します。次に、適応しきい値を適用しました。その後、輪郭を見つけて長方形にワープしました。OpenCV で Hough lines アルゴリズムを試しましたが、非常に悪い結果が得られました。
どのような手順を踏む必要がありますか? ありがとう
http://i.imgur.com/slUj099.jpg
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gaussian = cv2.GaussianBlur(gray,(3,3),0)
thresh = cv2.adaptiveThreshold(gaussian,255,0,1,13,4)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
area = gray.size
for i in contours:
if cv2.contourArea(i)> area/8:
peri = cv2.arcLength(i,True)
approx = cv2.approxPolyDP(i,0.02*peri,True)
cv2.drawContours(img,[approx],0,(0,255,0),2,cv2.CV_AA)
break