1楼:匿名用户
img(:,:,2) 是取图像的绿色分量(rgb中的第2个);
1-img(:,:,2) 是取颜色的反色;
把上述赋值给img,则img成了二维数组,此时不再是真彩图,而是灰度图,最终的效果大约就类似于**底片那样。
matlab小白,急求img(:,1:2)是什么意思?
2楼:我不仅仅是笨
img(:,1:2)的意思是取矩阵(或者图像)img的第1列到第2列的所有数据。其中第一个“:”表示取列的所有数,表示取第1列到第2列。
假设img的数据如下:
12345234565467978999那么img(:,1:2)的得到的结果如下:
12
23
54
78
即取前两列的数据。matlab运行结果如图1所示:
图1 运行结果
再如,img(:,2:4),表取第2列到第4列的数据,得到结果如下:
2 3 4
3 4 5
4 6 7
8 9 9
同理,img(1:2,:)则表示,取第1行到第2行的数据,得到结果如下:
1 2 3 4 52 3 4 5 6可以好好体会一下,希望对你有所帮助。。。
matlab里 一副彩色图像 img=imread('j.jpg'); a=img(:,:,1); b=img(:,:,2); c=img(:,:,3);
3楼:不好好改就革
分别代表这幅图的rgb(红绿蓝)三个成分的值
img(:,:,1)是什么意思 matlab语言
4楼:天云一号
在matlab中,img(:, :, 1)表明img是一个三维矩阵,意思是说取img的第一个二维矩阵。
可以参考如下程序段进行理解:
img = ones(2, 4, 2); % 生成一个三维矩阵,三维矩阵中包含2个二维矩阵,每个二维矩阵都是2*4的矩阵
三维矩阵img的形式如下:
img(:, :, 1)=
1 1 1 1
1 1 1 1
img(:, :, 2)=
1 1 1 1
1 1 1 1
5楼:匿名用户
img(:,:,1)的意思是图像的第一通
道,假设图像是rgb三分量组成的图像,那么图像的第一通道就是r,第二通道是g,第三通道是b
img(:,:,1)就代表r通道,也就是红色分量图像;img(:,:,2)代表g通道,也就是绿色分量图像;img(:,:,3)代表b通道,也就是蓝色分量图像。
6楼:匿名用户
很明显img为一个三维矩阵或者读取后的图像数据,img(:,:,1)就是读取三维矩阵的第一“片”矩阵。
matlab图像处理中b(:,1))和b(:,2)),b=b{1}分别是什么意思?
7楼:匿名用户
b表示cell阵列b的第一个元素,cell阵列的每个元素都可以是一个任意阶矩阵
也就是说b是一个矩阵,具体可查阅cell用法说明b(:,1)和b(:,2)分别表示矩阵b的第一列所有元素和第二列所有元素
min(b(:,1))表示取矩阵b第一列所有元素中最小的一个
8楼:匿名用户
b(:,1))是b矩阵的第一列,b(:,2))是b矩阵的第二列。
b不知道什么意思。不过从boundaries函数的返回类型可以知道。boundaries函数得到二值图像中的区域边界,返回一个px1 cell 类型的数组,其中p 图像中的小孔的个数。
数组中每一个cell都包含一个 qx2 的矩阵,矩阵的每一列包含边界像素点的行列坐标。q表示每一个小孔的边界像素点的个数。
matlab中图像马赛克处理中的r=i(:,:,1);g=i(:,:,2);b=i(:,:,3);这三句是什么意思?详细点 谢谢
9楼:宝刀没开刃
图像一般是由rgb模型构成的,rgb模型有三个色彩通道,分别代表红绿蓝三原色。
这句话的意思就是把图像中红、绿、蓝三色的数据分别存储到矩阵r、
g和b中。
matlab图像处理中 x1 = rgb(:,:,1); 这行语句是什么意思?
10楼:酷呆爱死呆
提取三维数据的第一维数据。如果是图像的话就是提取彩色图像的红色分量。r=rgb(:,:,1)%%红色分量
g=rgb(:,:,2)%%绿色分量
b=rgb(:,:,3)%%蓝色分量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
如果是三维数据的话:
x1=rgb(:,:,1)%%第一维数据
x2=rgb(:,:,2)%%第二维数据
x3=rgb(:,:,3)%%第三维数据
img(ii,:)=x(:); 在matlab 中是什么意思 求大神解释下列**
11楼:匿名用户
x现在是一个一维数组,img(ii,:)=x(:);这条**为:将x这个一维数组整体赋给img数组的第ii行。比如说x=[1,2,3,4,2]; img原本为4*5的矩阵
img=[ 0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
];img(3,:)=x(:);
此时执行完上面这条语句后,img变为:
img=[ 0,0,0,0,0
0,0,0,0,0
1,2, 3,4,2
0,0,0,0,0];
在matlab中图像处理中如何理解 part = img(i:i+block_size-1, j:j+block_size-1);
12楼:匿名用户
这个问题与1543657615568846507重复。
这段**的作用是,根据字符串 content 的内容,把图像 img 按照每 8x8 个像素中取一个像素,将其后3位取反。
从**大致判断以下信息:
1、m、n分别为图像的高和宽;
2、a_random 和 b_random 分别为两个随机整数,取值范围 1~block_size^2;
3、content 为由字符 0和1 组成的字符串。
**中简单加一些注释,有问题再追问:
content_length=length(content);
count=0;
block_size=8;
fori=1:block_size:m
forj=1:block_size:n
count=count+1;
ifcount>content_length
break;
endbit=str2double(content(count));
%根据当前content字符是0或1决定像素的位置
random_pixel_idx=(bit==1)*a_random+(bit==0)*b_random;
%从图像中提取一个8x8的子块,并根据前一步的位置将像素后3位取反
part=img(i:i+block_size-1,j:j+block_size-1);
part(random_pixel_idx)=bitxor(part(random_pixel_idx),7);%后3位取反
%把处理过的图像数据写回原矩阵img
img(i:i+block_size-1,j:j+block_size-1)=part;
end%由于break只能退出最近的一层循环,这里需要另外退出一次
ifcount>content_length
break;
endend