python-3.x - 我想使用 python 的 opencv 分割大小为 32x32px 或更大的补丁

标签 python-3.x opencv machine-learning image-segmentation

这里我有一张图片:
**Image_Original.jpg**
然后我使用下面的代码生成了阈值图像。

img = cv2.imread('Image_Original.jpg')
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
lower_gr = np.array([40,0,0])
upper_gr = np.array([90,255,255])
mask = cv2.inRange(hsv,lower_gr,upper_gr)
mask=~mask
res = cv2.bitwise_and(img,img,mask = ~mask)
cv2.imshow('Masked',mask)
cv2.imshow('Result',res)

然后是以下图像(蒙版):
**Masked**
和(结果):
**Result**

现在我想要的是通过将黑色像素设为零来删除黑色像素(仅从原始图像),并且我只想提取大小为 32x32px 或更大的补丁。

最佳答案

使用 cv2.findContours() 查找蒙版图像中白色斑 block 的边界。 每个边界都以 2D 点列表的形式返回。

使用 cv2.boundingRect() 获取每个面片的宽度/高度并进行相应的过滤。 您还可以使用 cv2.minAreaRect() 或 cv2.contourArea() 根据补丁的实际面积进行过滤。

https://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.htm

确定应丢弃哪些色 block 后,使用 cv2.fillPoly() 在彩色图像上用黑色覆盖它们。

关于python-3.x - 我想使用 python 的 opencv 分割大小为 32x32px 或更大的补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51055411/

相关文章:

machine-learning - fastText 的官方 python 绑定(bind)中是否有方法 .predict

python - 从字符串列表中获取最长持续时间

Python:按理解访问列表

C++ OpenCV 不在 mat 图像上绘制圆圈

machine-learning - Caffe:使用 ImageData 层平衡批处理内的类

machine-learning - 在什么情况下可以使用 bagging 来代替 boosting?

python - 无法使用 selenium-webdriver 设置复选框

python - 使用 python 正则表达式从字符串中单独提取子字符串

python - 我如何格式化我的列表以将其作为 opencv3.0 中 svm.train() 的输入

image - 到对象网络摄像头 C920HD 的距离或使用 OpenCV calibrate.py