我正在寻找从RGB到HSV的色彩空间转换器,特别是对于两个色彩空间的0到255范围.
我正在研究轮胎上的文本识别。为了使用 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

此致
瓦贾哈特
我必须在含有另一种血细胞的图像中检测白细胞,但可以通过细胞的颜色来区分,白细胞有更浓密的紫色,可以在下图中看到.
我使用RGB/HSV的颜色方法是什么?为什么?!
样本图片:

我想知道如何在opencv c ++中绘制HSV Mat的二维直方图.我当前试图显示它的代码失败了.我已经四处查看如何绘制直方图,我发现的所有直方图都是将它们绘制为独立的1d直方图.
这是我当前的输出,色调分箱数为30,饱和分箱数为32:

这是另一个输出,其中色调分箱数为7,饱和分箱数为5:

我希望它看起来更像是这里的结果
我也注意到每当我做cout << Hist.size它给我50x50.我理解这只是意味着数组的第一个维度是250的大小?
另外,如何将直方图从最高到最低(或反之亦然)值频率排序?这是我想要解决的另一个问题.
我目前的功能如下.
void Perform_Hist(Mat& MeanShift, Mat& Pyramid_Result, Mat& BackProj){
Mat HSV, Hist;
int histSize[] = {hbins, sbins};
int channels[] = {0, 1};
float hranges[] = {0, 180};
float sranges[] = {0, 256};
const float* ranges[] = {hranges, sranges};
cvtColor(MeanShift, HSV, CV_BGR2HSV);
Mat PyrGray = Pyramid_Result.clone();
calcHist(&HSV, 1, channels, Mat(), Hist, 2, histSize, ranges, true, false);
normalize(Hist, Hist, 0, 255, NORM_MINMAX, -1, Mat());
invert(Hist, Hist, 1);
calcBackProject(&PyrGray, 1, channels, Hist, …Run Code Online (Sandbox Code Playgroud)