python - OpenCV - 使用 python 管理图像处理中的阈值

标签 python image opencv image-processing

我是图像处理的新手,我正在处理以下图像并使用以下代码应用阈值来识别边缘

import cv2
import numpy as np

img = cv2.imread("box.jpg")
img_gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
noise_removal = cv2.bilateralFilter(img_gray,9,75,75)
ret,thresh_image = cv2.threshold(noise_removal,0,255,cv2.THRESH_OTSU)

左边是原始图像。中间是代码中img_gray计算得到的灰度图。右边是thresh_imgage计算得到的阈值图像

我的问题是从图像 1 和 2 中我们可以看到角处的梯度有显着变化,但在阈值图像中它还包括 阴影 作为框对象的一部分。

我已经通过更改阈值多次运行代码,但没有成功只获取框。我究竟做错了什么 ?有人可以帮忙吗?谢谢。

enter image description here

最佳答案

你应该考虑尝试自适应阈值

adp_th = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY, 5, 1.8)

这是我得到的:

enter image description here

现在正在研究 THIS PAGE 中提到的形态学操作你可以获得你想要的对象。

关于python - OpenCV - 使用 python 管理图像处理中的阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40807498/

相关文章:

android - 带有背景图片的 ListView

ios - 图像处理库,用于从 iOS 或 C# 中的平面图像制作 curl 图像

opencv - 调整代码以检测多个圆圈,而不是OPENCV中的一个圆圈

python - 如何在裁剪后检测和对齐倾斜图像

python - 如何使用将名称列表作为参数的装饰器向类添加属性?

python - 如何使用 AJAX 将图像上传到 Google 云存储?

Facebook - 指定图像尺寸?

python - 在 QTableWidget 中编辑单元格时不显示旧值

python - Pandas:滚动窗口来计算频率 - 最快的方法

java - 异常在线程 "main"java.lang.UnsatisfiedLinkError : no opencv_java249 in java. library.path