1

円の色の中心を取得するコードにもう 1 つの目が必要です。なんらかの理由で、すべてのセンターでほぼ同じ値が返されますが、これは正しくありません。サークルの結果:

センターカラー: [126 126 126] ポイント x: 502 y: 440

センターカラー [124 124 124] ポイント x: 502 y: 516

センターカラー [133 133 133] ポイント x: 502 y: 596

センターカラー [116 116 116] ポイント x: 504 y: 306

センターカラー [119 119 119] ポイント x: 504 y: 366

入力イメージを以下に示します。明らかに、黒丸の平均 RBG は 100 よりもはるかに低い範囲であるため、非常に異なる値が存在するはずです。

入力画像

下の画像は、コードが円と円の中心を正しく見つけていることを示しています (緑色でマークされています)。正しい中心の色の値が見つからないだけです。

出力

以下のコード:

import cv2
import numpy as np
from math import sqrt

# Open
img = cv2.imread('test1.jpg',0)

# Process
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

# Find Interest
circles = cv2.HoughCircles(img,cv2.cv.CV_HOUGH_GRADIENT,1,20,
                                param1=50,param2=30,minRadius=1,maxRadius=20)
circles = np.uint16(np.around(circles))

# Post Process
for i in circles[0,:]:

  # draw the outer circle
  cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
  # draw the center of the circle
  cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)

  print "Center Colour"
  print cimg[i[0], i[1]]
  print "Point"
  print "x: "+str(i[0]) + " y: " + str(i[1])

cv2.imwrite('output.png',cimg)
4

1 に答える 1