我熟悉名为'MATLAB'的软件,我有一个名为'flipLtRt.m'的文件,其代码如下:
function newIm = flipLtRt(im)
% newIm is impage im flipped from left to right
[nr,nc,np]= size(im); % dimensions of im
newIm= zeros(nr,nc,np); % initialize newIm with zeros
newIm= uint8(newIm); % Matlab uses unsigned 8-bit int for color values
for r= 1:nr
for c= 1:nc
for p= 1:np
newIm(r,c,p)= im(r,nc-c+1,p);
end
end
end
通过应用此代码:
I = imread('Dog.jpg');
Dog = flipLtRt(I);
imshow(Dog);
我的狗图像是镜像的。
我们很容易使用此文件'flipLtRt.m'来镜像图像,而无需实际理解代码。如果有人告诉我镜像图像,我可以简单地应用代码(第二部分),但如果有人告诉我实际解释每行代码如何做,我将无法做到。
有人能够解释代码的每一行实际上做了什么吗? 这是我无法理解的'for'部分。什么是'np'?新职位?
答案 0 :(得分:1)
代码迭代图像 im 的行,由 nr 行和 np 列的矩阵表示,翻转:
您可以看到此列在该行翻转:
newIm(r,c,p)= im(r,nc-c+1,p);
其中: