gpt4 book ai didi

matlab - 如何在 Matlab 中提高图像质量

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:39 25 4
gpt4 key购买 nike

我正在构建一个“光学字符识别”系统。

到目前为止,该系统能够识别出质量良好且没有任何噪音的车牌。

在下一阶段,我想要的是能够识别由于不同原因导致的质量较差的车牌。

例如,让我们看下一个板 block :

enter image description here

如您所见,由于光返回或其他原因,数字看起来并不清晰。

对于我的问题:如何提高图像质量,以便当我转向二值图像时数字不会消失?

提前致谢。

最佳答案

我们可以尝试通过在图像强度上拟合一个线性平面来校正照明效果,这将近似于整个图像的平均水平。通过从原始图像中减去这个着色平面,我们可以尝试标准化整个图像的照明条件。

对于彩色 RGB 图像,只需分别在每个 channel 上重复该过程,甚至将其应用于不同的色彩空间(HSV、Lab* 等...)

这是一个示例实现:

function img = correctLighting(img, method)
if nargin<2, method='rgb'; end
switch lower(method)
case 'rgb'
%# process R,G,B channels separately
for i=1:size(img,3)
img(:,:,i) = LinearShading( img(:,:,i) );
end
case 'hsv'
%# process intensity component of HSV, then convert back to RGB
HSV = rgb2hsv(img);
HSV(:,:,3) = LinearShading( HSV(:,:,3) );
img = hsv2rgb(HSV);
case 'lab'
%# process luminosity layer of L*a*b*, then convert back to RGB
LAB = applycform(img, makecform('srgb2lab'));
LAB(:,:,1) = LinearShading( LAB(:,:,1) ./ 100 ) * 100;
img = applycform(LAB, makecform('lab2srgb'));
end
end

function I = LinearShading(I)
%# create X-/Y-coordinate values for each pixel
[h,w] = size(I);
[X Y] = meshgrid(1:w,1:h);

%# fit a linear plane over 3D points [X Y Z], Z is the pixel intensities
coeff = [X(:) Y(:) ones(w*h,1)] \ I(:);

%# compute shading plane
shading = coeff(1).*X + coeff(2).*Y + coeff(3);

%# subtract shading from image
I = I - shading;

%# normalize to the entire [0,1] range
I = ( I - min(I(:)) ) ./ range(I(:));
end

现在让我们在给定的图像上测试它:

img = im2double( imread('http://i.stack.imgur.com/JmHKJ.jpg') );
subplot(411), imshow(img)
subplot(412), imshow( correctLighting(img,'rgb') )
subplot(413), imshow( correctLighting(img,'hsv') )
subplot(414), imshow( correctLighting(img,'lab') )

enter image description here

差异很小,但它可能会改善进一步图像处理和 OCR 任务的结果。


编辑:这是我通过应用其他对比度增强技术获得的一些结果 IMADJUST , HISTEQ , ADAPTHISTEQ以与上述相同的方式在不同的色彩空间上:

enter image description here

请记住,您必须微调任何参数以适合您的图像...

关于matlab - 如何在 Matlab 中提高图像质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6575366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com