我正在使用MATLAB在视频中执行特征检测.视频的不同部分的光照条件会有所不同,导致某些部分在将RGB图像转换为二进制图像时被忽略.
视频的特定部分中的照明条件也在视频的过程中改变.
您能否在MATLAB中建议最佳方法来平衡帧和视频的照明?
我正在研究轮胎上的文本识别。为了使用 OCR,我必须首先获得清晰的二值图。
我已经处理了图像,文本出现边缘破损和不连续的情况。我已经在 MATLAB 中尝试过使用圆盘和线元素进行标准腐蚀/膨胀,但它并没有真正帮助。
Pr1-关于如何重建这些字符并填补字符笔划之间的空白的任何想法?

Pr2- 上面的图像分辨率更高,光照良好。但是,如果如下图所示,照明较差且分辨率相对较低,那么可行的处理选项是什么?
S1:这是对Spektre共享的处理过的图像应用中值滤波器的结果。为了去除噪声,我应用了中值滤波器 (5x5),随后使用线元素 (5,11) 进行图像膨胀。即使现在 OCR (Matlab 2014b) 也只能识别一些字符
无论如何,非常感谢到目前为止的建议。我仍然会等着看是否有人可以提出不同的建议,也许是开箱即用的:)。
Matlab 实现以下 Spektre 代码中的步骤的结果(没有笔画扩张(按 1、2、3、4 的顺序对角进行标准化:
并且阈值 tr0=400 和 tr1=180 以及归一化的角顺序 1,3,2,4

此致
瓦贾哈特
我试图在 opencv 4.4.0 版上使用 cv2.findContours()。(我使用的是 Python 3.8.5 版)但它抛出了一个错误,我无法弄清楚。我不确定代码有什么问题。这是一些背景:
根据 OpenCV, cv2.findContours() 的语法如下: Python: contours, hierarchy = cv.findContours( image, mode, method[, contours[, hierarchy[, offset]]] )
我找了一些例子来确保如何正确实现它,这是我发现的:example 1 _, contours, _ = cv2.findContours(binary_image,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
示例 2 (_, cnts, _) = cv2.findContours(thresholded.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
这些是我在网上找到的工作项目,有很多这样的例子。所以,我试图实现我从视频中获得的一些代码,以对该主题有一些了解,但它似乎对我不起作用,我找不到原因。代码如下:
import cv2
import numpy as np
imagen =cv2.imread('lettuce.jpg')
gray = cv2.cvtColor(imagen,cv2.COLOR_BGR2GRAY)
_,binary = cv2.threshold(gray,100,255,cv2.THRESH_BINARY)
image,contours,hierarchy = cv2.findContours(binary,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(image,contours, -1, (0,255,0),3)
Run Code Online (Sandbox Code Playgroud)
错误:回溯(最近一次调用):第 8 行,在图像、轮廓、层次结构 = cv2.findContours(binary,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) ValueError:没有足够的值来解包(预期 3,得到 2)