这是一个很大的形象。 我只想在大图像中提取矩形图片。 大图像质量差。因此,您不能仅使用特定的RGB,并且背景可能不是白色。
我是怎么做到的
阈值图像将背景区域和照片部分分开。 问题在于无法随机确定每种图片颜色的阈值(背景是白色,而图片是接近白色的浅灰色背景)。
使用OpenCV2轮廓区域查找矩形。 问题在于每张图片的颜色是随机的,因此无法找到矩形区域。
如何裁剪照片?
答案 0 :(得分:3)
image = cv2.imread('image.jpg', cv2.IMREAD_UNCHANGED);
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))
gradient = cv2.morphologyEx(gray, cv2.MORPH_GRADIENT, kernel)
contours = cv2.findContours(gradient, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[1]
for cnt in contours:
(x,y,w,h) = cv2.boundingRect(cnt)
cv2.rectangle(image, (x,y), (x+w,y+h), (0,0,255))