假设有许多张种子标本:如下是一张种子虫道标本:
要将这张图片处理成如下图的图片:
总的说来,就是要实现标本边缘的批量识别和切割,而主要思路为,首先进行边缘检测,而边缘检测的结果是二值化后的图像,值为一的像素点为白色,只要统计出这个二值矩阵值为1的点最多的行和列,就可以进行精准的切割图片;
处理的MATLAB的代码如下:
ObjDir=‘C:\Users\yizim\Desktop\A题附件’;
OutputDir=‘C:\Users\yizim\Desktop\写入图片’;
I=imread(‘C:\Users\yizim\Desktop\A题附件(1).jpg’);%提取图像
img=rgb2gray(I);
[m,n]=size(img);
BW5=edge(img,‘canny’); %用Canny算子进行边缘检测
% imshow(BW5);
h=1;
for i=700:1:1000
tcout=0;
for j=1:1:1728
if(BW5(j,i)==1)
tcout=tcout+1;
end
end
stats(h)=tcout;
h=h+1;
end
[m,n]=max(stats);
x=700+n;
y=269;
pic_1=imcrop(I,[x,y,833,833]);
imwrite(pic_1,[OutputDir,num2str(i,’%d’),’.jpg’]);
效果还行;