다양한 각도로 음식 트레이 이미지가 있습니다. 모든 트레이를 가로 방향으로 만들고 싶습니다. 이를 위해 허프의 변형을 사용하여 트레이의 가장 긴 가장자리를 찾아서 이미지 테두리에 대한 방향을 계산하고 회전했습니다. 매우 적은 경우에 잘 작동합니다. 내가 가진 모든 이미지에 대해 작동하도록 만들고 싶습니다. 누구든지 이것으로 나를 도울 수 있습니까? 아래 링크에 몇 가지 샘플 이미지를 첨부했으며 현재 사용중인 코드도 포함했습니다. 이미지 링크
def Enquiry(lis1):
return(np.array(lis1))
img = cv2.imread('path/to/image')
canny = cv.Canny(img, 100, 200)
minLineLength = 200
maxLineGap = 10
lines = cv.HoughLinesP(canny, 1, np.pi / 180, 100, minLineLength, maxLineGap)
if Enquiry(lines).size>=4:
lines1 = lines[:,0,:]
max_length = 0
index = 0
i = 0
for x1, y1, x2, y2 in lines1:
length = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)
if length > max_length:
max_length = length
index = i
i += 1
[x1,y1,x2,y2]=lines1[index]
degree = math.atan(abs(y1-y2)/abs(x1-x2))
angle = degree*180/np.pi
H, W = img.shape[:2]
rotation_matrix = cv.getRotationMatrix2D((W/2, H/2), -angle, 1)
img_rotation = cv.warpAffine(img, rotation_matrix, (W, H))
cv2.imwrite('rotated_image.jpg', img_rotation)
회전 만 도움이되지 않습니다. 테스트 이미지에서 트레이에는 약간의 전단 및 비뚤어 짐이 있습니다.
내가 제안하는 것은 선의 교차점에서 모서리를 찾는 것입니다. 모서리가 3 개 이상입니다. 그런 다음 모서리와 트레이의 예상되는 실제 모서리 사이의 아핀 변환을 찾습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다