thấy đấy, tôi đã cố gắng để phát hiện cuốn sách trong một kệ sách:Cần phát hiện cuốn sách qua OpenCV Python
tôi đã sử dụng Contours cho bounding hộp. Tuy nhiên, tôi chỉ muốn chụp đối tượng sách thực tế. Nếu tôi giảm ngưỡng của Canny, nó sẽ không tự phát hiện ra cuốn sách nhưng nó phát hiện ra tên sách hoặc một số hình ảnh từ cột sống.
Tôi đã sử dụng houghlines và nó hoạt động tốt để phát hiện cạnh sách. Làm thế nào tôi có thể áp dụng các hộp giới hạn nhưng với houghlines thay vì đường nét?
mã tôi sử dụng cho đường viền Phát hiện:
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)
nơi:
img = cv2.imread('books3.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray,(5,5),0)
Đối với houghlines:
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))
nơi:
im = cv2.imread('books2.jpg')
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,100,300,apertureSize = 3)
Cảm ơn bạn rất nhiều trước.
Bạn có thể cho chúng tôi biết một số mã bạn đã thử không? – tacaswell
tất nhiên. – xandra12791
Bất kỳ tiến trình nào với điều này? Đã hơn một năm rồi. Tôi cũng thích làm điều tương tự. Chơi xung quanh với opencv cũng chỉ khác biệt tôi đang sử dụng wrapper nodejs. – ThomasReggi