как исправить проблему ориентации при отделении кофейных зерен от одного изображения в python - PullRequest
0 голосов
/ 22 января 2020

Моя цель состоит в том, чтобы исправить ориентацию изображения для ориентации, которую я использовал для преобразования перспективы, но с помощью преобразования перспективы результирующее изображение отображается пустым, и я не знаю причину, по которой оно отображается пустым

Это маркерное изображение, которое я использую для разделения изображений кофейных зерен, и изображение, которое я получил после преобразования перспективы.

Вот мои детали реализации, которые я Я использую для, чтобы исправить ориентацию разделенного изображения

i = 13

imagemask = np.zeros(markers.shape)
imagemask[markers == i]=255
#     dilation = cv2.dilate(imagemask,kernel=np.ones((7,7)),iterations = 3)
im = np.array(imagemask* 255, dtype = np.uint8)   
    #To remove the problem of 8UC1 problem'''
#     new_bk_image = cv2.bitwise_and(imagemask ,  result )
r,contours, hierarchy = cv2.findContours(im,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE) 
#     imgaftercontourboundary = cv2.drawContours(dilation, contours, -1, (0,255,0), 3)
cnt = contours[0]
M = cv2.moments(cnt)
x,y,w,h = cv2.boundingRect(cnt)
#     greenrectangle = cv2.rectangle(coffee_RGB,(x,y),(x+w,y+h),(0,255,0),3)

rect = cv2.minAreaRect(cnt)
box = cv2.boxPoints(rect)
box = np.int0(box)
x1 , y1 , w1 , h1 = cv2.boundingRect(box)
#     mask = imagemask.astype('int')
final_image = cv2.bitwise_and(result , result, mask = im )

#     print(box)
imagered = final_image[y1:y1+h1 , x1:x1+w1 ,  : ]

#     plt.figure()
#     plt.imshow(imagered)

source =  np.float32(box)


print(x1, y1 , w1 , h1 )
destination = np.float32([[0,0],[w1,0],[0,h1],[w1,h1]])
#     plt.figure()
# plt.imshow(destination)

M = cv2.getPerspectiveTransform(source,destination)
dst = cv2.warpPerspective(imagered,M,(300, 300))

plt.figure(figsize=(12,10))
plt.imshow(dst)
plt.imsave('E:\InternshipAGNEXT\CoffeeBeansClassiication\SegmentedImage\MarkerImage\pers\ .jpg',dst) 
...