image_1=imread(image_1png); %读入image_1png到数组image_1
image_2=imread(image_2png); %读入image_2png到数组image_2
function h = joint_h(image_1,image_2) %定义函数joint_h(计算两个图像的联合直方图,返回矩阵h。
rows = size(image_1,1); %读取image_1的行数到rows
cols = size(image_1,2); %读取image_1的列数到cols
N=256;
h=zeros(N,N); %定义NN的矩阵h
for i2=1:rows;
for j2=1:cols; %二重循环遍历了image_1的每一个位置。
h(image_1(i2,j2)+1,image_2(i2,j2)+1)=h(image_1(i2,j2)+1,image_2(i2+j2)+1)+1; 读取两幅中该位置的点颜色信息,将矩阵h中相应的计数器加1。最终,h(x,y)表示image_1中颜色是x-1而image_2中相同位置的点颜色是y-1的点的个数。
end
end
%不知道这段程序是干是么的,感觉上和两个的相关性有关。要是两幅图相等,h应该只有主对角线上有值
function h=MI2(image_1,image_2) %定义函数MI2计算两图像的互相关矩阵,返回矩阵h(呵呵,上面的那个函数果然和相关性有关,哈哈)
a=joint_h(image_1,image_2); %将两图像的联合直方图赋值给矩阵a,就是上面定义的那个。
[r,c]=size(a); %读取a的行列信息。
b=a/(rc); %求a的归一化矩阵b
y_marg=sum(b); %后面涉及到图像处理相关的数学知识,我真的无能为力了,但我认为你不必太关心实现的细节,明白输入输出就行了。你看,归一化联合直方图矩阵都有了,两个图像的相关关系已经提取得差不多了,在此基础上做个处理,就得到互相关矩阵了。你直到MI2函数返回的是两幅的互相关矩阵就够了,没必要看得太细。
x_marg=sum(b');
Hy=0;
for g =1:c;
if(y_marg(g)==0)
else
Hy=Hy+ (-(y_marg(g)(log(y_marg(g)))));
end
end
Hx=0;
for k=1:r;
if(x_marg(k)==0)
else
Hx=Hx+(-(x_marg(k)(log2(x_marg(k)))));
end
end
Hx=0;
for k=1:r;
if(x_marg(k)==0)
else
Hx=Hx+(-(x_marg(k)(log2(x_marg(k)))));
end
end
h_xy=-sum(sum(b(log2(b+(b==0)))));
h=Hx+Hy-h_xy;%最后算出的h就是返回值。
end
clear;clc;close all;%这一行的命令就是为了清零,消除上面 *** 作的影响
filename='D:\matlab\work\13jpg';
A=double(rgb2gray(imread(filename))); %讲图像变换成双精度型的图形类型
B=DCT2(A); %离散余弦函数 *** 作
figure(2);subplot(1,3,1);imshow(uint8(A));title('原图');
subplot(1,3,2);imshow(uint8(B));title('离散DCT变换结果');
E=idct2(B); %反余弦变换
subplot(1,3,3);imshow(uint8(E));title('DCT逆变换的结果');
%subplot函数实现的是图像的最后排列显示,如(1,3,1)的意思就是最后显示的图像分为一行三列,中的第一幅图像
"1)方法一
选中你要加注释的内容,之后选取工具菜单“text|comment”就可以了,假如要把注释变为语句,同样选中要转变的语句,之后用鼠标选取“text|uncomment”就可以了。用键盘(keyboard)的快捷键是"Ctrl+R"
或选中你要加注释的内容,右击鼠标选取“comment”,
假如要把注释变为语句,同样选中要转变的语句,之后右击鼠标选取“uncomment”取消注释。用键盘(keyboard)的快捷键是"Ctrl+T"
2)方法二
采用matlab块注释方法
%{
要注释不执行的若干命令行
%}
3)方法三
在注释段前面加一行:if
LOGICAL(0)
在注释段后面加一行:end
和前2个方法不一样,这个方法实际上是通过逻辑判别语句不执行相关的语句"
data=A(:,:,1);
得到图像A的数据,如果图像mmbmp是黑白图像,那么得到的就是这张黑白图像。如果mmbmp是RGB彩色图像,那么得到的是R(红)通道的信息。程序这样写估计是为了让这个程序也能适合读彩色的情况。
[m0,n0]=size(data);
得到图像的高度和宽度。m0是高度,n0是宽度
id1=find(data==min(min(data)));
找到图像上的灰度的最小值的位置,id1是一个数,是把矩阵的元素按列从上到下,然后从左到右数的第几位。也可以写成[id1_row,id1_col]=find(data==min(min(data))); 如果写成这种样子,id1_row是行数,id1_col是列数。
id2=find(data==max(max(data)));这句是什么意思呢?
找到图像上的灰度的最大值的位置,原理同前面找最小值。
以上就是关于求matlab注释!(追加100分)全部的内容,包括:求matlab注释!(追加100分)、跪求MATLAB程序注释、MATLAB中怎么实现块注释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)