首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模糊图像的自适应阈值

模糊图像的自适应阈值
EN

Stack Overflow用户
提问于 2013-09-05 04:49:51
回答 4查看 12.5K关注 0票数 8

我在寻找图像二值化的最佳自适应阈值方法。但是我对黑暗和模糊的图像有任何问题。

输入图像:

当我使用自适应阈值方法时,我会收到以下信息

输出图像

这对我不好!

有人能帮我解决这个问题吗?

另一幅图片:

以及:

首先,使用@Hammer的解决方案(我必须选择c通道),第二,我可以使用自适应阈值正常。

所以我想为所有案件找到最好的解决方案。

再次感谢!

EN

回答 4

Stack Overflow用户

发布于 2013-09-05 05:55:21

在你的图像中,颜色似乎是一个比强度更好的分割指标。尝试将其转换为HSV,然后在H通道上运行OTSU。

巨蟒

代码语言:javascript
运行
复制
hsv = cv2.cvtColor(image, cv2.cv.CV_BGR2HSV)
cv2.imshow('hsv', hsv[:,:,0])
(thresh, im_bw) = cv2.threshold(hsv[:,:,0], 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
cv2.imshow('OTSU', im_bw)

给予(hsv)

然后(OTSU)

一点腐蚀和扩张,你应该是好的去

票数 8
EN

Stack Overflow用户

发布于 2014-07-23 09:03:40

您可能对openCV使用的openCV自适应阈值感兴趣。

我使用了自适应平均阈值。您可能需要使用一些参数,但如果您的图像是相似的(相同的大小等),希望不会有太多的调整需要。

代码语言:javascript
运行
复制
# Smooth image
filtered = cv2.adaptiveThreshold(input_image.astype(np.uint8), 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 41, 3)

# Some morphology to clean up image
kernel = np.ones((5,5), np.uint8)
opening = cv2.morphologyEx(filtered, cv2.MORPH_OPEN, kernel)
closing = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel)

结果:

票数 6
EN

Stack Overflow用户

发布于 2017-03-19 00:36:14

下面的代码..。

代码语言:javascript
运行
复制
im=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,111,3)
cv2.imshow('mkm',im)`

..。取得了良好的效果:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18627970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档