如何用matlab处理碎纸片拼接问题

如何用matlab处理碎纸片拼接问题,第1张

用matlab处理碎纸片拼接:

1、思路:

分别用n个变量储存n个碎纸片图像,然后用矩阵拼接的方式把碎纸片拼接。

2、具体代码:

clear all

close

I1=imread('008.bmp')

I2=imread('014.bmp')

I3=imread('012.bmp')

I4=imread('015.bmp')

I5=imread('003.bmp')

I6=imread('010.bmp')

I7=imread('002.bmp')

I8=imread('016.bmp')

I9=imread('001.bmp')

I10=imread('004.bmp')

I11=imread('005.bmp')

I12=imread('009.bmp')

I13=imread('013.bmp')

I14=imread('018.bmp')

I15=imread('011.bmp')

I16=imread('007.bmp')

I17=imread('017.bmp')

I18=imread('000.bmp')

I19=imread('006.bmp')

a=[I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17,I18,I19]

imshow(a)

figure

I1=imread('003.bmp')

I2=imread('006.bmp')

I3=imread('002.bmp')

I4=imread('007.bmp')

I5=imread('015.bmp')

I6=imread('018.bmp')

I7=imread('011.bmp')

I8=imread('000.bmp')

I9=imread('005.bmp')

I10=imread('001.bmp')

I11=imread('009.bmp')

I12=imread('013.bmp')

I13=imread('010.bmp')

I14=imread('008.bmp')

I15=imread('012.bmp')

I16=imread('014.bmp')

I17=imread('017.bmp')

I18=imread('016.bmp')

I19=imread('004.bmp')

b=[I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17,I18,I19]

imshow(b)

扩展资料:

matlab使用技巧:

1、在编写Matlab程序的时候,需要可以用 % 来注释掉代码,或者可以直接使用快捷键【Ctrl + R】来注释程序;

2、同时如果需要取消注释代码,可以选择直接去除%或者使用快捷键【Ctrl + T】来取消注释;

3、可以选择【Edit】,之后点击【Copy Figure】,新建Word文档,点击【粘贴】,之后就可以看到复制的图片了

 这只是批量读入图像从matlab论坛找的,把a.m文件直接放在附件1文件夹里直接运行,调试通过

imname = dir('.\*.bmp')%读入文件夹下的全部图像

im_num = length(imname)% 文件夹中图像的个数

im_temp = imread(imname(1).name,'bmp')%读入第一幅图像

[height,width] = size(im_temp)%得到图像的尺寸

DB(:,:,a) = zeros(height,width,im_num,'uint8')

% 读入全部图像

for a = 1:length(imname)

    DB(:,:,a) = imread(imname(a).name,'bmp')%读取图像数据

 end

批量读入图片

用cat函数连接;

每个纸条的边界

ima = DB(:,:,a)

im_left = ima(:,1)

im_right= ima(:,end)

第1步:利用MATLAB软件[1]依次读取附件1(或附件2)中的所有碎纸片图像,其中图片标记为 ;

第2步:利用MATLAB软件中的im2bw函数对所有碎纸片图像进行二值化处理[2],即所有的碎纸片都用仅包含0或1的二维矩阵 表示,其中1表示白色,0表示黑色;

第3步:依次提取矩阵 的第1列与最后1列元素,分别标记为 与 ;

第4步:将 中元素全为1所对应的碎片挑选出来,作为拼接复原图像的左边第1条碎片,并标记为 ;

第5步:将 的最后1列元素分别与剩余碎纸片的第1列元素作点积运算并求和,其中和值最大者即为与 最为匹配的碎纸片[3],记作 ,并将其放在拼接复原图像的左边第2条;

第6步:依此类推,得到 , ,……, ,最后得到拼接复原图像 。

根据上述算法,利用MATLAB软件编程(程序见附录1)可得问题1中附件1与附件2的碎片拼接顺序结果如表1与表2所示;附件1与附件2的拼接复原图像见附录2与附录3所示。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7948538.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存