我是图像处理的新手,我正在处理以下图像并使用以下代码应用阈值来识别边缘
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 中我们可以看到角处的梯度有显着变化,但在阈值图像中它还包括 阴影 作为框对象的一部分。
我已经通过更改阈值多次运行代码,但没有成功只获取框。我究竟做错了什么 ?有人可以帮忙吗?谢谢。
最佳答案
你应该考虑尝试自适应阈值
adp_th = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY, 5, 1.8)
这是我得到的:
现在正在研究 THIS PAGE 中提到的形态学操作你可以获得你想要的对象。
关于python - OpenCV - 使用 python 管理图像处理中的阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40807498/