matlab拼接27个图像碎片程序,你这是2013年大学生数学建模大赛B题,我觉得这个题要用图像的字符识别,通过字符的结构进行度量,
关键是拼接的算法,你要设计合适的算法才能真正做到
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');%读取图像数据
%在此处也可以加入图像二值化代码
DB(:,:,a) = im2bw(DB(:,:,a) );
end
批量读入
用cat函数连接;
每个纸条的边界
ima = DB(:,:,a);
im_left = ima(:,1);
im_right= ima(:,end);
灰度值就是0 255,你要二值化数也行用 im2bw
左边11900的图像就是 im(:,1);
请采纳我的答案!
我的代码是调试通过的
你可以试试下面的程序:
I=imread('myphotojpg'); % 假设要处理的图像是myphotojpg
heights=size(I,1); % 图像的高
widths=size(I,2); % 图像的宽
m=8; % 假设纵向分成8幅图
n=10; % 假设横向分成10幅图
% 考虑到rows和cols不一定能被m和n整除,所以对行数和列数均分后要取整
rows=round(linspace(0,heights,m+1)); % 各子图像的起始和终止行标
cols=round(linspace(0,widths,n+1)); % 各子图像的起始和终止列标
blocks=cell(m,n); % 用一个单元数组容纳各个子图像
for k1=1:m
for k2=1:n
blocks{k1,k2}=I(rows(k1)+1:rows(k1+1),cols(k2)+1:cols(k2+1),:);
subimage=blocks{k1,k2};
% 以下是对subimage进行边缘检测
% 加入边缘检测的代码
% 以上是对subimage进行边缘检测
blocks{k1,k2}=subimage;
end
end
processed=I; % processed为处理后的图像,用原图像对其初始化
% 以下为拼接图像
for k1=1:m
for k2=1:n
processed(rows(k1)+1:rows(k1+1),cols(k2)+1:cols(k2+1),:)=blocks{k1,k2};
end
end
figure,imshow(processed)
% 以上的程序已测试过,对灰度图像和真彩图像都可以运行。
图像处理方面、图像识别算法:掌握算法、简化算法、认清算法实质和算法最大复杂度所在;嵌入式CPU数据手册:掌握cpu特点和能力,如需特殊优化了解cpu内部cache和总线特点,特色指令集嵌入式 *** 作系统文档:了解系统能力、存储器使用、系统运行最大速度,程序调用特点(硬中断、软中断、函数),以便决定算法运行过程以及是否能够实现、处理能力如何
以上就是关于matlab拼接27个图像碎片程序全部的内容,包括:matlab拼接27个图像碎片程序、matlab图像如何用代码完成图像的分割、边缘检测和拼接的任务、matlab图像分块,边缘检测,图像拼接代码_基于matlab的图像边缘检测等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)