图像二值化及模板匹配matlab实现.docx
《图像二值化及模板匹配matlab实现.docx》由会员分享,可在线阅读,更多相关《图像二值化及模板匹配matlab实现.docx(3页珍藏版)》请在冰豆网上搜索。
图像二值化
图像的二值化处理(4张)
就是将图像上的像素点的灰度值设置为0或255也就是将整个图像呈现出明显的黑白效果。
将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
在数字图像处理中二值图像占有非常重要的地位首先图像的二值化有利于图像的进一步处理使图像变得简单而且数据量减小能凸显出感兴趣的目标的轮廓。
其次要进行二值图像的处理与分析首先要把灰度图像二值化得到二值化图像。
所有灰度大于或等于阀值的像素被判定为属于特定物体其灰度值为255表示否则这些像素点被排除在物体区域以外灰度值为0表示背景或者例外的物体区域。
使用matlab编程实现两幅图像的块匹配操作其中
rgb_image=imread('A.bmp');
gray_image=rgb2gray(rgb_image);
image=double(gray_image);
ed_image=image;
rgb_back=imread('B.bmp');
红色部分表示要匹配的两张图片附件所含文件
附件中m文件代码复制内容到剪贴板
代码:
clear;
echo off;
%for g=267
%a1=imread([num2str(g),'.jpg']);
rgb_image=imread('A.bmp');
gray_image=rgb2gray(rgb_image);
image=double(gray_image);
ed_image=image;
rgb_back=imread('B.bmp');
gray_back=rgb2gray(rgb_back);
back=double(gray_back);
[y1,y2,x1,x2]=rowcol(back,image);
[M,N]=size(back);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相关系数法
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for i=x1:
5:
x2
for j=y1:
5:
y2
I=image(i:
i+4,j:
j+4);%块T=back(i:
i+4,j:
j+4);
aver_I=mean(mean(I));%块均值aver_T=mean(mean(T));
sub_I=I(1:
5,1:
5)-aver_I;%每块与均值之差squ_sub_I=sub_I.*sub_I;%差值平方sum_sub_I=sum(sum(sub_I));%差值之和sum_squ_sub_I=sum(sum(squ_sub_I));%差值平方和sub_T=T(1:
5,1:
5)-aver_T;
squ_sub_T=sub_T.*sub_T;
sum_sub_T=sum(sum(sub_T));
sum_squ_sub_T=sum(sum(squ_sub_T));
mul=sub_I.*sub_T;
sum_mul=sum(sum(mul));%分子R=sum_mul/((sqrt(sum_squ_sub_I))*(sqrt(sum_squ_sub_T)));
if R>0.9
image(i:
i+4,j:
j+4)=255;
end
end
end
image(x1:
x2,y1)=255;
image(x1:
x2,y2)=255;
image(x1,y1:
y2)=255;
image(x2,y1:
y2)=255;
h=mat2gray(image);
figure,imshow(h)
ed1=edge(ed_image,'canny',0.08);
ed2=edge(ed_image,'prewitt',14);
ed=ed1&ed2;
%figure,imshow(ed)
%figure,imshow(ed1)
%figure,imshow(ed2)