用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文档,点击【粘贴】,之后就可以看到复制的图片了
程序可以这样写:
a='00000111110001110' %列出要判断的字符串。b=strfind(a,'1') %找出字符串a中字符等于1的位置。
c=diff(b) %求b的差分。
d=find(c~=1) %找出c中不等于1的位置。这也就是各块的分隔点。
e=[d(1) diff(d) length(b)-d(end)] %利用分隔点d写出各块的长度。
e中的每一项,就是每一块中1的个数:
>> disp(e)5 3
最后一行e这样写的目的,是为了适应不止两块的情况,比如:
a='11000111110001101'这个a是四块,同样运行这个程序,显示各个变量,会得到:
a =11000111110001101
b =
1 2 6 7 8 9 10 14 15 17
c =
1 4 1 1 1 1 4 1 2
d =
2 7 冲尺 9
e =
丛祥 2 5 2 1
可见结果是正散郑高确的。
若有不解,欢迎追问。
分块以后,用循环分别处理每个小图像块. 对每个小图块的处理流程是:1) 灰度图转成二值图, 裂缝为白色,背景为黑色
2) 计算裂缝(即白色)像素数量,与背景像素数的比, 并根据这个比值来判断是否为裂缝
3) 如果为裂缝标记对应的矩阵弊键crack_image(i,j)=1,否则标带卜脊记为0
重复以蠢渗上流程,直到每个小图块处理完毕
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)