【发布时间】:2020-07-02 18:49:42
【问题描述】:
我正在努力将图像裁剪为放置在图像内部的矩形大小。这是原图:
到目前为止,我能够输入它,将其颜色转换为 HSV 颜色空间并对其应用阈值。 到目前为止,这是我的代码:
import cv2
#Read input image
img = cv2.imread('rdm_generated_image.png')
#convert from BGR to HSV color space
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
#get the saturation plane - all black/white/gray pixels are zero, and colored pixels are above zero.
s = hsv[:, :, 1]
#apply threshold on s
ret, thresh = cv2.threshold(s, 8, 255, cv2.THRESH_BINARY)
#invert colors, so every dark spots are now white
image = cv2.bitwise_not(thresh)
cv2.imwrite("image.png", image)
完成后程序输出如下:
现在我只想将图像裁剪到中间的大框,但我无法检测到它的轮廓。
我尝试了cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) 和其他一些功能,但我还没有成功。如果这应该是错误的做法,请纠正我。感谢您的帮助,因为我对 OpenCV 有点缺乏经验。
提前致谢!
【问题讨论】:
标签: python opencv python-imaging-library crop