别人的一起拼接图像

11视图(30天)
约翰
约翰 2012年6月22日
编辑: SAMEER BAMBAL2019年3月20日
你好,
我打电话两个for循环加载png图像映射到matlab。然后我想缝在一起。5 x5。
我以前设置每张图片加载,img1 img2等,然后缝合在一起使用
str1 = sprintf (F: \ \映射\ \ % g \ \ % g, x, y);
A1 =存在(str1);
如果A1 = = 2;
img1 = imread (str1);
其他的
img1 = imread (F: \ \ No_File.png映射的l)
结束
然后缝合起来:
地图= [img1 img2、img3 img4, img5; img6等);
为了简化,我想要运行一个for循环,执行以下操作:
m = x-2:1: x + 2
n = y - 2:1: y + 2
str = sprintf (F: \ \ \ \ % s映射\ \ % g \ \ % g \ \ % g \ \ % g \ \ % g.png 'mstring, z, xi, m,咦,n);
一个=存在(str);
如果一个= = 2;
img = imread (str);
其他的
img = imread (F: \ \ No_File.jpg映射的);
结束
% % % % % % % % % % % % % % %
结束
结束
除了我现在不知道如何编写map = [img1 img2…等部分,显然我改变img每个循环的价值。
我怎么写img到适当的地图图像的一部分?有一种方式吗?
我试过了:
stitchxstart = (m x + 2) * 256 + 1;
stitchxend = (m + 1 - x + 2) * 256;
stitchystart = (n-y + 2) * 256 + 1;
stitchyend = (n + 1 y + 2) * 256;
然后写为:
地图(stitchxstart: stitchxend stitchystart: stitchyend:) = img;
我所知的结果将是一个1280 * 1280 * 3…但这显然是行不通的…不太清楚如何编写映射变量以正确的方式。
提前谢谢....

接受的答案

图像分析
图像分析 2012年6月22日
试试这段代码:
c1 =兰德(5、5、3)
cStitched = c1;%初始化与第一个。
次要情节(2 2 1);
imshow (c1);
%现在策略。
k = 1: 10
c2 =兰德(5、5、3);
次要情节(2,2,2);
imshow (c2);
cStitched = (cStitched c2);
次要情节(2,1,2);
imshow (cStitched);
%提示用户,如果他们想继续下去。
promptMessage = sprintf (“你想继续处理,\也取消中止处理吗?”);
按钮= questdlg (promptMessage,“继续”,“继续”,“取消”,“继续”);
如果比较字符串(按钮,“取消”)
返回;
结束
结束
这应该足以让你开始。您可以使用分号来代替一个逗号在垂直策略。所以我做的是使用上面的代码做一个完整的“行”5×1280像素,然后使用分号使用相同的概念
cStitched = [cStitched;oneRow];
在这一行垂直的策略。
缝合的一般和健壮,这并不容易。例如处理不同类型的图像(颜色、单色),大小不同,他们如果他们大小不同,等等。这个文件交换提交处理所有与最大的灵活性很好: //www.tatmou.com/matlabcentral/fileexchange/25797-stitch
2的评论
SAMEER BAMBAL
SAMEER BAMBAL 2019年3月20日
编辑:SAMEER BAMBAL 2019年3月20日
@image分析师:
谢谢你的回答
如果我要做多个图像(如超过2如9 - 10)与相同的代码而不是输入数量的图像使用for循环直到10。怎么可能?

登录置评。

答案(1)

约翰
约翰 2012年6月22日
针= 0 (1280、1280、3);
tempstitch = 0 (1280、1280、3);
j = 0;
m = x-2:1: x + 2
我= 0;
n = y-2:1: y + 2
流(M: N % g: % g \倪:% g j: % g \ N ',m, n, i, j);
str = sprintf (F: \ \ \ \ % s映射\ \ % g \ \ % g \ \ % g \ \ % g \ \ % g.png 'mstring, z, xi, m,咦,n);
一个=存在(str);
如果一个= = 2;
img = imread (str);
其他的
img = imread (F: \ \ No_File.jpg映射的);
结束
如果我= = 0
tempstitch = img;
elseif我> 0
tempstitch = [tempstitch; img];
结束
我=我+ 1;
结束
如果j = = 0
针= tempstitch;
elseifj > 0;
针=(针,tempstitch);
结束
j = + 1;
结束

类别

找到更多的在图像类型转换帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!