2

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 
4

0 に答える 0