问题标签 [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.

0 投票
4 回答
2977 浏览

python - 使用 opencv 在 python 中为 OCR 进行适当的图像阈值处理

我真的是opencv的新手,也是python的初学者。

我有这张图片:

原始 bmp 24 位图像

我想以某种方式应用适当的阈值来保留 6 位数字。

更大的图景是,我打算尝试分别对每个数字的图像执行手动 OCR,在每个数字级别上使用 k-最近邻算法 (kNearest.findNearest)

问题是我无法充分清理数字,尤其是带有蓝色水印的“7”数字。

到目前为止,我尝试的步骤如下:

我正在从磁盘读取图像

然后我只保留蓝色通道以消除数字“7”周围的蓝色水印,有效地将其转换为单通道图像

单通道 - 仅红色 - 图像

然后我将它乘以一点以增加数字和背景之间的对比度:

将图像相乘以增加对比度

最后我执行 Binary+Otsu 阈值:

二值欧胡岛阈值图像

如您所见,最终结果非常好,除了数字“7”保留了很多噪音。

如何改善最终结果?请尽可能提供图像示例结果,它比单独的代码片段更好理解。

0 投票
1 回答
110 浏览

python - 阈值化后将字符与边框分开

在对图像进行阈值处理后,我想将字符与边框分开:

原始图像

原始图像

接触区域

接触区域

期望的输出

期望的输出

我正在使用 python 和 OpenCV 进行阈值处理。在此先感谢您的帮助。

这是生成阈值的代码的一部分

0 投票
1 回答
36 浏览

python - 如何在opencv中定义阈值以便将整行放在一起,包括python中的空间

我想在整条线上画一个绿色矩形,包括这张图片上的空间。 为了做到这一点,我以这种方式对图像进行阈值处理。

但这不允许我得到整条线的轮廓并且不幸地以这种方式获得输出。

请帮我解决这些问题!谢谢

0 投票
1 回答
386 浏览

python - 在灰度图像上使用自适应阈值的错误

我读取了一张图像,并使用此函数将其转换为灰度:

现在,我尝试使用以下方法将我的图像转换为二进制:

但我收到了这个烦人的错误:

我不明白为什么因为gray_img肯定是灰度的!我看了这个问题,上面的答案是salvador daly提出输入图片不是灰度的,但是我检查了很多次,肯定是。

任何帮助将不胜感激!

0 投票
0 回答
275 浏览

c - C中的图像阈值

我正在尝试在 C 中设置 PGM 阈值。我正在尝试访问数组并尝试将数组元素从一种颜色转换为另一种颜色,然后将其他数组元素转换为另一种颜色。

数组设置如下:int inputPicture[1025][1025];

我用来访问数组和转换数组元素的代码如下:

我已将其设置为嵌套 for 循环,以访问数组中 max_height(rows) 和 max_width(columns) 的值。

对于 PGM 文件,0 是黑色,通常 255 是白色。但是我被告知这个数组的最大值应该是 3,所以我假设 3 是白色。

基本上,我在这里试图确定的是,上面的代码是否能达到改变所需图片颜色的预期结果,使曾经的颜色变成黑色,变成白色,变成黑色。

还是我做错了什么?是否应该使用定义的函数来代替指针传递?

0 投票
1 回答
139 浏览

c++ - 如何从 MATLAB Lab 色标转换为 OpenCV Lab 色标?

我正在尝试使用Color Thresholder App在 MATLAB 中对颜色进行采样,然后在 OpenCV 中使用L * a * b输出。但似乎存在规模不匹配。以下是MATLAB 和 OpenCV中的L * a * b标度:

  1. MATLAB:0 <= L <= 100;-100 <= 一 <= 100; 和 -100 <= b <= 100

MATLAB 实验室规模

  1. OpenCV:0 <= L <= 100;-127 <= 一 <= 127; 和 -127 <= b <= 127

根据这两个来源:来源1;和来源 2

似乎我们需要以下L * a * b范围用于 OpenCV 中的 8 位图像:

0 <= L <= 255;0 <= 一 <= 255; 和 0 <= b <= 255

我们如何将 MATLAB 转换为 8 位图像的 OpenCV L * a * b色标?

0 投票
2 回答
707 浏览

python - 有没有更好的方法将写作与背景分开?

我正在做一个项目,我应该在一些文件上申请和 OCR。
第一步是对图像进行阈值处理,只让文字(背景变白)。

输入图片示例:(出于GDPR和隐私原因,此图片来自互联网

在此处输入图像描述 这是我的代码:

这是我得到的结果:

在此处输入图像描述

当我将pytesseract应用于输出图像时,结果并不令人满意(我知道 OCR 并不完美)。尽管我尝试调整阈值(在此代码中它等于 120),但结果并不像我想要的那样清晰。

有没有办法制定一个更好的阈值,以便只保持黑色和白色的写作?

0 投票
1 回答
38 浏览

python - cv2 阈值在第二张图像上无法正常工作

我是 python 新手,我正在玩背景减法来可视化更改前后图像的变化。

cv2我使用该库编写了一个简短的脚本:

结果如下所示:

在此处输入图像描述

为什么第二组图像的掩码中存在与第一组图像不同的掩码?

我使用了不同的变量,thresh1并且thresh2.

任何帮助将不胜感激,因为我似乎找不到问题。

0 投票
1 回答
50 浏览

matlab - 用matlab识别图像中特定颜色的项目的最有效方法是什么?

我试图从所附图像中识别出特定的绿叶阴影(例如海军绿色)。我如何以最有效的方式做到这一点?到目前为止,我正在将 RGB 转换为 HSV,然后根据某些特定的饱和度范围和值对图像进行阈值处理,这将隔离我想要的阴影。它正在处理一些图像,而在其他图像上到处都是。我想要一些可以在饱和度和值略有不同的任何不同图像中隔离特定绿色阴影的东西(例如,如果照片是在光线过多的情况下拍摄的) 图像链接

% 然后我尝试在图像上显示一些指针,以向我展示 matlab 识别阴影的位置。m = regionprops(w,'质心');

您的帮助将不胜感激。

0 投票
1 回答
84 浏览

python - Reg:根据 blob 大小的区域复制 blob

目标:在另一个蒙版图像中复制较大的斑点

我有一个带有斑点的阈值图像,如图所示:

在此处输入图像描述

我怎样才能将较大的斑点复制到蒙版图像中并省略一个像素的斑点?

在此处输入图像描述

我的代码(但我没有得到想要的结果):

注意:使用 OpenCV 2.4.x