急急急!求matlab图像求二值图像相似度,在线等!

算法很简单,已知两个二值图像,逐一比较每个像素,相同的+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;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-23
你得把图像读出来呀,用imread命令试试吧。读出来以后你自己就会编了
例如先把当前目录改变到图像文件下,然后读入pic1=imread('X1.bmp');
pic2=imread('X2.bmp');X?.bmp改成对应的文件名。
矩阵可能是二维也可能是三维的,得到矩阵后应该就没什么问题了吧!
第2个回答  2010-06-23
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))
第3个回答  2018-04-11
直接做个差分,然后求和。

急急急!求matlab图像求二值图像相似度,在线等!
图像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...

matlab求取图像的灰度图、图像轮廓以及二值化图像
在MATLAB中进行图像处理时,图像的灰度化、轮廓检测以及二值化是常见的步骤。首先,对于灰度图像的获取,你可以借助rgb2gray函数。这个函数采用标准的灰度转换公式,将彩色图像转换成单一的灰度值表示,便于后续处理。接着,轮廓检测是通过edge函数实现的。它支持多种边缘检测算法,如Sobel、Canny和Prewitt,这些...

matlab 图像处理 二值化
1、若想快速转变成二值图像则:i=imread('tuxiang.jpg');i1=rgb2gray(i);%i1灰度图像 i2=im2bw(i1);% i2是二值图像,不需要求阈值 2、如果你要找直方图谷点,可以imhist(i1)画出灰度直方图,然后观察出谷底,若想编程求谷点的我就不给你编了,不太难;3、或者你可以自己设经验值 Imax=...

matlab怎么二值化
在MATLAB中进行图像二值化,可以使用`im2bw()`函数。这个函数通过阈值(threshold)变换方法,将灰度图像转换为二值图像。二值图像仅包含黑白两种颜色,通常表现为纯黑(0)和纯白(255),但也可以是其他任意两种颜色的组合。为了了解`im2bw()`函数的详细用法,可以在MATLAB命令窗口中输入`doc im2bw`或`...

matlab如何求解二阶微分方程数值解的图象
题主的问题可以使用ode45函数求解,得到【x,y,y'】的数值解。其求解方法:1、确定初值,y0=[pi,0];2、确定x的范围,xspan=[0,10];3、自定义函数,odefun=@(x,y)[y(2);sin(y(1))*cos(y(1))*((2\/9*pi)\/(2+0.4*(sin(y(1)))^2))^2-5*sin(y(1))];4、求解,[x,...

matlab怎么二值化
matlab中,使用im2bw()函数对图片进行二值化。matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可以是其他任意两种颜色的组合。在matlab命令行中键入doc im2bw或...

如何用matlab计算二值化图中白色区域的像素点个数
clc I=imread('test.bmp');%读入图片 bwI=im2bw(I,0.5);%转化为二值图像 L=bwlabel(bwI,4);%将四连通区域进行标记 [r,c]=find(L==1);%查找其中的白色区域,r是白点的所在行组成的向量,c是白点所在的列组成的向量 step 2 %去除r中重复的数 new_r=[];for i=1:length(r)nn=find...

求助各位大神,如何用matlab的M文件实现批量载入图片并转化为二值图像...
这只是批量读入图像从matlab论坛找的,把a.m文件直接放在附件1文件夹里直接运行,调试通过,转化为二值图像,我觉要用图像的字符识别,通过字符的结构进行度量,imname = dir('.\\*.bmp');im_num = length(imname);im_temp = imread(imname(1).name,'bmp');[height,width] = size(im_temp)...

如何用matlab将图片转换成二值图像矩阵(binary image matrix)?_百度知 ...
这个简单,看你的说法,你的图片应该直接就是灰度图片。灰度图片一般每个像素是0-255从黑到白,而二值图片的意思是黑是0白是1,所以你有灵感了吧,只要设置一个阈值,大于它的赋值为1小于它的赋值为。

MATLAB--数字图像处理 Otsu算法(双阈值)
在数字图像处理中,Otsu算法是一种著名的双阈值分割技术。它的核心思想是通过优化灰度级像素的统计特性来找到最佳的两个阈值,从而实现图像的二值化。具体步骤如下:首先,算法通过计算每个像素灰度值与其均值u的方差,构建一个关于灰度级的累计分布函数(CDF),并定义一个函数g,其中w0、w1和w2分别对应...

相似回答