我有以下2个图像:
如何组合图像以获得这2张图像中的任何一张?
我的代码:
import cv2
import numpy as np
image = cv2.imread('skadi.png')
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
cv2.imshow('greyscale',gray)
_, binary = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)
cv2.imshow('treshold',binary)
binary= 255 - binary
cv2.imshow('inverted',binary)
kernel = np.ones((25, 25), np.uint8)
closing = cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel)
cv2.imshow('closing',closing)
#closing = 255-closing
closing2 = cv2.bitwise_not(closing)
cv2.imshow('invetedclosing',closing2)
result = cv2.bitwise_or(closing, closing2)
cv2.imshow('convned',result)
edges = cv2.Canny(result, 100, 200)
cv2.waitKey(0)
cv2.destroyAllWindows()
我试着将它们与cv2.bitwise_or
和cv2.bitwise_xor
结合起来,但最终以白色屏幕结束。
任何帮助感激不尽!
1条答案
按热度按时间j9per5c41#
这是一个简单的脚本,它可以提取二值图像中最大的白色斑点。因为图像中最大的白色斑点是前景(也是你要找的形状),所以这应该会给予你预期的结果。
它基本上得到了所有的外部轮廓,并保留了面积最大的轮廓。然后在一张新的图像上绘制它。
这是源代码,我使用this图像,因为你没有提供原始.
这就是结果: