参照を経由して本を検出する必要が、私は本棚で本を検出しようとしている:は、OpenCVのPythonの
私は境界ボックスのために輪郭を使用していました。しかし、ちょうど実際の本のオブジェクトをキャプチャしたいです。私がCannyからの閾値を小さくすれば、それは本自体を検出することはできませんが、書籍のタイトルや背骨の画像を検出します。
私はホウラインを使用していましたが、それは本の端を検出するためにはうまくいきました。境界ボックスを適用するにはどうすればよいですか?輪郭の代わりにハウラインを適用しますか?
I輪郭発見のために使用されるコード:
edges = cv2.Canny(blur,thresh,thresh*2)
drawing = np.zeros(img.shape,np.uint8)
contours,hierarchy = cv2.findContours(edges,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
rect = cv2.minAreaRect(cnt)
box = cv2.cv.BoxPoints(rect)
box = np.int0(box)
:houghlinesについて
img = cv2.imread('books3.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray,(5,5),0)
:
lines = cv2.HoughLines(edges,1,np.pi/180,120)
for rho,theta in lines[0]:
a = np.cos(theta)
b = np.sin(theta)
x0 = a*rho
y0 = b*rho
x1 = int(x0 + 1000*(-b))
y1 = int(y0 + 1000*(a))
x2 = int(x0 - 1000*(-b))
y2 = int(y0 - 1000*(a))
:
im = cv2.imread('books2.jpg')
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,100,300,apertureSize = 3)
ありがとうございます。
私たちが試したコードのいくつかを見せてもらえますか? – tacaswell
もちろん:)。 – xandra12791
これはどの進歩ですか? 1年以上経ちました。私は同じことをすることに興味があります。 opencvで遊んでいるだけで、違いはnodejsラッパーを使っている点です。 – ThomasReggi