急急急!求matlab图像求二值图像相似度,在线等!
算法很简单,已知两个二值图像,逐一比较每个像素,相同的+1,不相同的+0。最后用这个数处以第一个图像的总像素数,最后得出相似度。我想得到但是不会编,求高手为我编一个完整程...
算法很简单,已知两个二值图像,逐一比较每个像素,相同的+1,不相同的+0。最后用这个数处以第一个图像的总像素数,最后得出相似度。我想得到但是不会编,求高手为我编一个完整程序。要完整的!
展开
展开全部
图像1和2为RGB图,放在m文件夹下;直接输入二值的话就不用im2bw了,pio是相似比
I1=imread('1.jpg');
I2=imread('2.jpg');
I1_bw=im2bw(I1);%%二值化
I2_bw=im2bw(I2);
[h,w]=size(I1_bw);%%获取图的宽高h/w
sum=0;
for i=1:h
for j=1:w
if I1_bw(i,j)==I2_bw(i,j)%%逐点比较相似
sum=sum+1;
end
end
end
pio=double(sum)/h/w;
I1=imread('1.jpg');
I2=imread('2.jpg');
I1_bw=im2bw(I1);%%二值化
I2_bw=im2bw(I2);
[h,w]=size(I1_bw);%%获取图的宽高h/w
sum=0;
for i=1:h
for j=1:w
if I1_bw(i,j)==I2_bw(i,j)%%逐点比较相似
sum=sum+1;
end
end
end
pio=double(sum)/h/w;
展开全部
你得把图像读出来呀,用imread命令试试吧。读出来以后你自己就会编了
例如先把当前目录改变到图像文件下,然后读入pic1=imread('X1.bmp');
pic2=imread('X2.bmp');X?.bmp改成对应的文件名。
矩阵可能是二维也可能是三维的,得到矩阵后应该就没什么问题了吧!
例如先把当前目录改变到图像文件下,然后读入pic1=imread('X1.bmp');
pic2=imread('X2.bmp');X?.bmp改成对应的文件名。
矩阵可能是二维也可能是三维的,得到矩阵后应该就没什么问题了吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
pic1=imread('D:\Notepad\matlab\图片生成avi\结果\1.bmp');
pic2=imread('D:\Notepad\matlab\图片生成avi\结果\2.bmp');
if any(size(pic1)-size(pic2))
error('两个图像的长宽不符')
end
picdiff=sum(pic1==pic2,3); %rgb的叠加
picdiff=picdiff==0; %相同的为1,不同为0。这里要求rgb全部相同才为1
sum(picdiff(:))/(size(pic1,1)*size(pic1,2))
pic2=imread('D:\Notepad\matlab\图片生成avi\结果\2.bmp');
if any(size(pic1)-size(pic2))
error('两个图像的长宽不符')
end
picdiff=sum(pic1==pic2,3); %rgb的叠加
picdiff=picdiff==0; %相同的为1,不同为0。这里要求rgb全部相同才为1
sum(picdiff(:))/(size(pic1,1)*size(pic1,2))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接做个差分,然后求和。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询