机器视觉第三次作业

内容
对图像进行文字提取
机器视觉第三次作业_第1张图片
使用同态滤波解决图片照射不均匀的问题:
机器视觉第三次作业_第2张图片
二值化之后可以看到清晰的文字
之后进行边缘检测:
代码记录如下:

I1=imread('C:\Users\18868\Desktop\道德经图像处理.jpg');
I2=rgb2gray(I1);%转为灰度图

f1=fspecial('gaussian',[7 7],0.3);
f2=fspecial('gaussian',[7 7],2.5);
F=f1-f2;%构建一个高通

J1=log(1.0+double(I2));%分开入射光和反射光
J2=imfilter(J1,F,'symmetric','conv');%将高通滤波器与对数转换之后的图像卷积

J3=exp(J2)-1.0;%变换回来
minJ=min(min(J3));
maxJ=max(max(J3));
J4=(J3-minJ)/(maxJ-minJ);
k=im2bw(J4,0.462);%二值化
w=im2bw(J4,0.522);%希望进一步区分边缘
imwrite(J4,'C:\Users\18868\Desktop\同态滤波.jpg');
imwrite(k,'C:\Users\18868\Desktop\二值化.jpg');
imwrite(w,'C:\Users\18868\Desktop\区分边缘.jpg');
I3=edge(w,'LOG',0.012);%LOG算子
imwrite(I3,'C:\Users\18868\Desktop\边缘检测-log.jpg');
I4=edge(w,'Sobel',0.26);%Sobel算子
imwrite(I3,'C:\Users\18868\Desktop\边缘检测-sobel.jpg');
I5=edge(w,'Roberts',0.16);%Roberts算子
imwrite(I3,'C:\Users\18868\Desktop\边缘检测-roberts.jpg');
I6=edge(w,'Prewitt',0.06);%Prewitt算子
imwrite(I3,'C:\Users\18868\Desktop\边缘检测-prewitt.jpg');
I7=edge(w,'Canny',0.26);%Canny算子
imwrite(I3,'C:\Users\18868\Desktop\边缘检测-canny.jpg');

你可能感兴趣的:(机器视觉学习)