Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 20:42   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在MATLAB中将图像与另一个图像混洗

这是我的一个主题中的图像混洗问题的延续。

%# scramble autumn.tif with itself img1 = imread('autumn.tif'); %# scramble [dummy,scrambleIdx] = sort(img1(:)); img2 = img1; img2(:) = img1(scrambleIdx); %# note the (:). If you don't use it, img2 becomes a vector %# unscramble [dummy2,unscrambleIdx] = sort(scrambleIdx); img3 = img2; img3(:) = img2(unscrambleIdx); 问题1: sort(X,dim)函数以升序排列X的列。这是否意味着X的所有尺寸?

问题2:此代码中img2的列和行是否都被改组,还是仅改列了?



回答:
  1. sort(X,dim)沿维度dim sort(X,1) ,即sort(X,1)对每一列中的行进行sort(X,2) , sort(X,2)对每一行中的列进行排序。 sortrows(X,4)根据第四行对行进行排序,如果要对列进行排序,则必须先对X进行转置。 sort(X(:)对数组X所有元素进行排序。
  2. 在这段代码中, img2所有元素都被改组。
而不是使用autumn.tif ,您可能想要尝试在例如5x5的魔术方块magic(5)上改组,以便更好地了解正在发生的情况。

编辑

这是magic(5)的例子magic(5)

>> m = magic(5) m = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> sort(m,1) %# sort rows in each column of m ans = 4 5 1 2 3 10 6 7 8 9 11 12 13 14 15 17 18 19 20 16 23 24 25 21 22 >> sort(m,2) %# sort columns in each row of m ans = 1 8 15 17 24 5 7 14 16 23 4 6 13 20 22 3 10 12 19 21 2 9 11 18 25 >> sortrows(m,3) %# sort the rows of m according to column 3 ans = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> mt = m' %'# transpose m mt = 17 23 4 10 11 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2 15 16 22 3 9 >> sortrows(mt,2) %# sort the rows of the transpose of m according to col 2 ans = 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2 15 16 22 3 9 17 23 4 10 11 >> mm = m; %# assign an output array for the next operation >> mm(:) = sort(m(:)) %# sort all elements of m mm = 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25

更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 21:26


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.