图像二值化及模板匹配matlab实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像二值化
图像的二值化处理(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)。

相关文档
最新文档