使用MATLAB
输入两幅图片,将两幅图片拆分成像素列尺度,间隔合并起来。
就是说,第一幅图大小为800*600,将它拆成1*600,的800个像素条。
第二幅图,大小为800*600,同样拆开
最后,合成图像3,它的第1列像素来自图像1的1列,第2列来自图像2的1列,第3列来自图像1的2列,直到1600列合成完,并输出。
非同类,非同尺寸.同类可以通过使用同一台照相设备来完成。尺寸不同,是否可以通过MATLAB来选取同样大小区域?比如800*600.或者 如果两者大小不同,未填充满的地方留白即可。
谢谢,我的Q905063008
1、对于不同类型的图片,应考虑统一转换为真彩图像来处理,避免调色板不同导致的问题。
2、尺寸不同,有以下几种处理思路:
(1)通过缩放,变成相同尺寸(问题:变大还是变小?)
(2)从大图片截取和小图片相同的尺寸(问题:截取位置——中间?靠左?靠上?)
(3)小图片外面加空白(问题:空白区域颜色?小图片放在什么位置?)
你所说的图像合成问题本身并不难,比较复杂的就是输入的两张图片可能有各种各样的情况,需要考虑周全,处理起来比较繁琐。
真彩色,不缩放,如果小的话 自动填充白色,大的话自动裁剪左上到右下的大小,可否提供一段代码试试看,谢谢
追答大和小是相对的概念,填充是向大图片对齐的做法,裁剪是向小图片对齐的做法,而这时不一样的。你的说法两者都有,究竟是要按照哪种做法?
而无论裁剪还是填充,水平和垂直方向都存在不同的对齐方式,你说的【左上到右下】也并没有回答究竟是用哪种方式。
按水平方向对齐吧,两者中先取大的,以大的位标准,将不足的地方填充。水平方向,从左到右,如果真彩色比较麻烦,转成灰度图像再处理也可以,谢谢了。
追答好像你还是没看明白我要明确的问题:
水平方向对齐,是把小图放在左边,右边空白?
垂直方向呢?小图放上边,下面空白?
嗯,对的。如果我没理解错的话。
我想做的事情是这样,比如两幅图, 它们分别是 “豇” 和 明”,各是2x2像素大小,
我希望程序能将它组合成 “豆日工月”变成了4X2。
假设 图1 是 800*600 图2 是 1200*800
那么合成图像就按小的乘以 两倍, 即应该是1600*1200, 从图2中取800*600的部分,填进去。
前800列,600行,即可。
谢谢,麻烦了我稍后追加分数。
晕,你说了好半天,一些基本的概念怎么一直没搞清楚?
按照你现在的描述,那应该是水平方向按照宽度比较小的进行裁剪,垂直方向按照高度比较大的填充?
你只是按列合并,宽度乘2就行了,高度怎么会变成1600?
先给你一段代码试试,有问题再说吧:
% 读取图像谢谢老兄,这个就是我想要的,非常感谢!
抱歉,是我没描述清楚。
另外,还能请问一个问题吗?就是如果我要改成:
1)改变像素列单元宽度,每张图像各取 2 、3、4 个像素列为一组,再组合,如何修改?
2)三张图像合并,如何修改。
非常感谢。