问题标签 [image-thresholding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何知道我是否需要在 findContour 之后反转阈值类型
我正在使用 OpenCV 进行手部检测。但是我在尝试脱粒图像的轮廓时很挣扎。findContour
将始终尝试找到白色区域作为轮廓。
所以基本上它在大多数情况下都有效,但有时我的脱粒图像看起来像这样:
_, threshed = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY|cv2.THRESH_OTSU)
因此,要使其正常工作,我只需要更改阈值类型cv2.THRESH_BINARY_INV
。
_, threshed = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)
而且效果很好。
我的问题是如何确定何时需要反转阈值?我是否需要始终在两个脱粒图像上找到轮廓,并比较结果(我这种情况如何?)?或者有一种方法可以缓解知道轮廓是否没有完全丢失。
编辑:有一种方法可以 100% 确定轮廓看起来像一只手吗?
编辑2:所以我忘了提到我正在尝试使用这种方法检测指尖和缺陷,所以我需要缺陷,在第一个脱粒图像中我找不到它们,因为它颠倒了。见第一轮廓图像上的蓝点。
谢谢。
python-3.x - 图像轮廓区域迭代计算器
我正在尝试找到轮廓蒙版的填充区域。它只是为 33 个轮廓产生相同的值。
这是在将灰度图像阈值化为 0 和 255 之后:
结果:
image-processing - 我想提高二值图像的准确性
我使用 Otsu 阈值将灰度 img 转换为二进制。但是准确率不是很高,我想提高一下。
从 matplotlib 导入 cv2 将 pyplot 导入为 plt
定义主():
如果名称== “主”:主()
python - 关于如何在 OCR 之前从 IMAGE 中过滤掉通知的指南
我一直在用 python 对图像进行 OCR 处理,但仍有改进的余地,因此您的输入和想法会有所帮助。
这就是我目前正在做的事情,成功获得有效 ocrText 输出的比例约为 15%。
当我试图取得进展时,我发现了一个“opencv-color-spaces”博客,它使用下面的代码将图像的像素绘制成 3d 模型。我可以看到所有背景噪音都是不同的灰色,并且几乎在某个区域内。我觉得这可以帮助我在代码中执行之前将它们过滤掉,但我不知道该怎么做。
如果您可以给我一些输入,我想寻求帮助,是否有一个功能并做得更快或一些代码并在我继续处理图像之前快速删除灰线?
image-processing - 如何创建 ROI 并计算该 ROI 内的黑白像素?
我有以下黑白图像,其中 ROI(感兴趣区域)显示为绿色虚线,实线位于中心。我希望开发一些代码,通过将两条绿色实线之间的距离的 30% 添加到两条绿色实线的任一侧(如图中绿色虚线所示),可以自动绘制 ROI。然后,我希望在绿色虚线之间的两个区域内获得黑白像素的数量。谢谢
image-processing - 检测图像中的一张纸,如 cam-scanner 应用程序
从图像中,我需要提取一张纸,就像 camscanner 应用程序一样,https: //www.camscanner.com/
我知道我可以通过检测我想要检测的纸张的边缘来做到这一点。然后进行透视变换。我在 python 中使用 openCV 库。这是我试图在其中找到这张纸的图像:
这是我已经尝试过的:
方法1:(使用阈值)
- 使用图像平滑(高斯模糊/双边模糊)对图像进行预处理
- 将图像拆分为 h,s,v 通道
- 饱和通道上的自适应阈值
- 一些形态学操作,如膨胀和腐蚀
- 寻找轮廓,识别最大轮廓并找到角点
我已经根据 stackoverflow 答案实现了这个方法: 检测一张纸/正方形检测
我可以找到一些图像的纸张,但对于这样的图像它失败了:
方法2:(使用sobel梯度算子)
- 通过转换为灰度对图像进行预处理,图像平滑(高斯模糊/双边模糊)
- 寻找图像的梯度
- 对图像进行下采样和上采样
- 在此之后,我不知道如何找到包含图像的适当边界。
我已经根据 stackoverflow 答案实现了这种方法: 从背景中检测纸张几乎与纸张颜色相同
这是我对图像的了解程度:
方法3:(使用canny边缘检测器)
根据我在这个社区上阅读的帖子,似乎每个人都更喜欢精明的边缘方法来提取边缘,但就我而言,结果并不令人满意。这是我所做的:
- 通过转换为灰度对图像进行预处理,图像平滑(高斯模糊/双边模糊)
- 使用精明的边缘寻找边缘
- 一些形态学操作,如膨胀和腐蚀
- 但是从canny那里得到的边缘确实不合格。
我已经根据 stackoverflow 的答案实现了这个方法: Detecting a sheet / Square Detection,我也没有通过在这个答案中迭代多个通道来完成他的工作。这是我对图像的了解程度:
这是method1(阈值)的一些代码:
我对图像处理和openCV有点陌生。请分享一些关于如何更进一步并更准确地获得结果的见解。TIA。
opencv - 如何在opencv中有条件地应用阈值
我有两种类型的图像要处理。一种具有白色背景,另一种具有深色背景。我的要求是为每种类型应用不同的阈值
例如:白色背景
用于深色背景
我正在使用阅读图像cv.imread(img,0)
我正在做形态变换,所以我需要反转白色背景图像。但对于深色背景,我不想反转。