求matlab注释!(追加100分)

求matlab注释!(追加100分),第1张

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中怎么实现块注释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10133920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存