问题标签 [adaptive-threshold]

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 投票
1 回答
12734 浏览

c++ - OpenCV二进制自适应阈值OCR

我需要将一些图像转换为 OCR 的二进制文件。

以下是我正在使用的功能:

哪里CalcBlockMeanVariance

当我1得到CalcBlockMeanVariance这个blockSide结果时,我试图提高,blockSide但它只会导致更糟糕的结果。

前:

在此处输入图像描述

后:

在此处输入图像描述

谁能建议一种不同的方法将此图像转换为二进制文件作为 OCR 的准备工作?

谢谢。

0 投票
1 回答
480 浏览

image-processing - 使用自适应阈值分割图像

我已经对使用全局阈值保持和自适应阈值保持的分割之间的区别进行了一些研究,这是我的理解......

注意:假设一个 16 位灰度图像

全局阈值保持:定义一个像素值 0-65535。扫描图像,将阈值以下的每个值设为黑色,否则,将其设为白色。

自适应阈值保持:为每个像素定义一个阈值保持,然后确定是否将其设为白色或黑色。

我的问题是:对于自适应阈值保持,我如何确定每个像素的阈值是多少?

编辑:在此处输入图像描述

所以看这个图,N 将是图像中的像素数。Theta 代表阈值。我不知道 while 循环条件是什么......我不知道 while 循环内的东西是什么,但我知道如何计算它。

0 投票
2 回答
1760 浏览

c++ - OpenCV 中的鲁棒图像分割

我正在尝试编写一个 OpenCV 程序来计算别人的鱼卵。它目前需要他们上传的图像,标准化,模糊,阈值,扩张,距离变换,阈值再次,然后找到轮廓(就像在典型的分水岭教程中一样)。

我遇到的问题是照明条件可能会有很大差异,因此即使使用我的自适应阈值,算法的准确性也会有很大差异。如果图像上有渐变亮度,它的效果似乎特别差。有时物体在背景的衬托下非常明亮,有时它们的亮度几乎相同。有没有什么特别有效的方法可以在不同的光照条件下找到物体?

示例图像: 图像 gif

0 投票
1 回答
182 浏览

matlab - 使用阈值进行分割

我需要从背景中分割一个对象。作为起点,我假设图像中有一个对象,我的任务是将它与背景分开并创建一个二值图像( 0 - 用于背景,1 - 用于对象)。我阅读了一些关于使用阈值进行分割的堆栈溢出问题和研究论文。我找到了两种方法,全局阈值和本地/自适应阈值。我们可以在各种条件下应用它们,即全局阈值可能适用于一种情况,但可能不适合另一种情况。我的问题是我们如何自动找到最合适的方法的图像。是否总是适合使用局部阈值方法而不是全局方法作为预防措施?

0 投票
0 回答
293 浏览

matlab - 调整小字体扫描的阿拉伯语单词的大小和阈值

我正在为打印的扫描文档制作阿拉伯语 OCR ... 某些扫描文档可能以高度 8 的字体大小书写,这非常小... 我想将高度调整为 60 像素,但可能会出现一些伪影,原因是阿拉伯字符的性质..有些字符可能重叠。我在调整大小后使用了局部阈值方法,但结果仍然不可接受......有什么想法吗?

这是一个示例图像:

图 1

这是使用 50 作为窗口大小调整和应用局部自适应阈值后的相同示例:

图 2

如您所见,某些字符中存在一些不连续性,例如:

图 3

有什么方法可以在保留文本形状的同时调整图像大小?

我修复字符不连续性的方法:

  • 使用 16 窗口大小的局部自适应阈值调整大小之前的阈值原始图像(这将解决字符不连续但字符中的孔被填充)调用它smallbw

  • 使用调整大小并smallbw使用imresize(smallbw, [nh nw], 'nearest')填充字符中的孔imfill

  • imresize(originalIm, [nh nw], 'nearest')使用调用将原始图像的大小调整为 60 像素largebw

  • largebw在使用中填补漏洞imfill并调用它bwfill

  • largebw从by 中提取孔bwholes = bwfill - largebw

  • 最后,减去bwholessmallbw得到这个

图 4

您可以在此处看到字符 @Image 3 中发现的不连续性已得到解决...但是这里还提出了另一个问题,有些字符可能会重叠,如此处所示

图 5

这是迄今为止我能取得的最好结果......还有其他想法可以解决这些问题吗?如果您认为这个问题没有解决方案,我将如何解决它而不是使用调整大小?使用 12 字体大小的文本而不是 8 字体怎么样?

有用的链接: 使用的局部自适应阈值方法

操作系统:windows 7

编程环境:Matlab 2013a - 图像处理工具箱

0 投票
2 回答
3166 浏览

image-processing - 如何实现带颜色的自适应阈值滤波器

我正在寻找一种类似自适应阈值的算法,但可以保持颜色。我正在尝试拍摄这样的图像:

原始图像

让它看起来像这样:

处理后的图像

如果重要的话,我在ios工作。

0 投票
0 回答
142 浏览

image - 如何正确设置此图像的阈值?

我正在尝试对该图像进行阈值处理以使字符更加明显。我使用了 OTSU 阈值,但我没有得到好的结果,因为当我将图像转换为灰色时,很难找到一个好的阈值。你能给我一些想法吗?我可以在另一个色彩空间上对图像进行阈值处理吗?谢谢你,对不起我的英语。

车牌:

第一的

灰色车牌:

第二

临界点:

第三

0 投票
1 回答
927 浏览

image - Matlab - 动态阈值

我正在尝试进行动态阈值处理,但出现了一些错误。我正在尝试适应此代码: http: //www.inf.ed.ac.uk/teaching/courses/ivr/lectures/ivr5hand.pdf

0 投票
1 回答
93 浏览

matlab - 输出图像显示不正确

我目前正在编写一段代码来准备图像以进行阈值处理,尽管输出图像和返回的像素数据之间似乎存在不匹配。

我会通过代码告诉你。首先,我定义了接受三个参数的函数 - IMAGE,将被阈值化的图像;r定义围绕中心像素的邻域的半径,从中可以计算像素数据;和k,确定阈值细节的“内核”。

function [t] = imadaptive ( IMAGE, r, k )

然后我调用我之前定义的函数,这些函数创建的图像中存储了每个像素的平均值和标准差:

接下来,我创建一个新图像t,其中每个像素的强度为 0。这将用于存储每个像素的适当阈值:

然后我计算出图像的大小以告诉 for 循环何时停止:

接下来,我启动 for 循环并运行一系列 if 语句来阻止程序尝试检查 (-2,-2) 等位置的像素值:

最后,我运行代码来计算出每个像素的适当阈值,然后将该值添加到图像中t

问题是:当我运行这段代码时,我得到一个与我的图像相同的图像stdpic:显示每个图像的标准偏差值的图片。不过,我不知道为什么会这样。等式似乎是正确的——当我;从等式中删除 时,我看到它输出的值变化很大,介于 0 到 255 之间,因此输出图像t看起来应该大不相同。

谁能指出我在这里做错了什么?

0 投票
2 回答
5918 浏览

ocr - Tesseract OCR 中使用什么阈值(二值化)算法?

我正在开发一个项目,该项目需要为具有丰富背景的图像提供准确的 OCR 结果。所以我正在比较两个 OCR(其中一个是 Tesseract)的结果来做出我的选择。关键是结果受到预处理步骤的强烈影响,尤其是图像二值化。我提取了另一个 OCR 的二值化图像并将其传递给 Tesseract,从而将 Tesseract 的结果提高了 30-40%。

我有两个问题,你的回答对我有很大帮助:

  1. tesseract 使用什么二值化算法,它是否可配置?
  2. 有没有办法提取 Tesseract OCR 的二值化图像,以便我可以用它测试另一个 OCR?

提前致谢 :)