我要处理的是车牌图片,已经剪切好是79*28的图象。
要求对其进行不均匀照度处理
MATLAB不是太懂,代码如下:
car0 = imread('car.jpg');%car.jpg是79*28
car1 = im2double(car0);  % Convert to double precision
car2 =rgb2gray(car1);转换成灰度图处理
imshow(car0)
figure,
imshow(car2)
bg32 = blkproc(car2,[32 32],'min(x(:))');
bg7928 = imresize(bg32 ,[79 28], 'bicubic');
imshow(bg7928)
d = car2 - bg7928;%d = imsubtract(car2,bg7928)
imshow(d,[])
adjusted = imadjust(d, [0 max(d(:))], [0 1], 1);
imshow(adjusted)
只是参照MATLAB中的DEMO写的,但是实现不了,很烦,多多指点,在此谢过,
可以[email protected]交流。

解决方案 »

  1.   

    我后来又将bg32 = blkproc(car2,[32 32],'min(x(:))');改成bg32 = blkproc(car2,[79 28],'min(x(:))');
    将bg7928 = imresize(bg32 ,[79 28], 'bicubic');改成bg7928 = imresize(bg32 ,[28 79]);将d = car2 - bg7928;改成d = car0 - bg7928;改这句是因为要从初始图象中减去背景图象。
    但是还是在d = car0 - bg7928;执行后出现问题,提示说是,图象的矩阵大小仍然不匹配。郁闷!
    如果装有MATLAB的话,能帮忙运行一下,查找问题根本所在就好,谢谢!
      

  2.   

    车牌检测的话,用灰度图像就可以了。
    d = car2 - bg7928就可以了。
    bg7928 = imresize(bg32 ,[28 79]);将d = car2 - bg7928
    这句生成的图像被改成了[28,29],这样d = car0 - bg7928 ,的确是图象的矩阵大小不匹配。
    bg32 = blkproc(car2,[32 32],'min(x(:))'),这句是块操作,应该不需要改。
    我找了张图运行了下,可以运行,但是效果并不怎么样。