本程序用于将图片分割为一列一列小图片并进行保存,用于将图片设置为所需形式。
clc;
clear;
close all;
% 设置所需图片的分辨率
x_pixels = 49500;
y_pixels = 49500;
% 设置每列脉冲数
pulse_num = 1500;
% 设置要保存的位置
path = 'H:\05_matlab_siom\院标重复\Cas_logo49500x49500_反_镜像\';
filename = uigetfile();
pic = imread(filename);
imwrite(pic,'yuanbiao.bmp');
pic = imread('yuanbiao.bmp');
pic = uint8(pic);
% pic = rgb2gray(pic);
pic = 255-pic;
pic = im2bw(pic);
pic = 255*pic;
pic = uint8(pic);
figure(1);
imshow(pic);
[m,n] = size(pic);
dx = m - x_pixels;
dy = n - y_pixels;
x0 = floor(dx/2);
y0 = floor(dy/2);
pic_new = zeros(x_pixels,y_pixels);
for i = 1:x_pixels
for j = 1:y_pixels
pic_new(i,j) = pic(i+x0,j+y0);
end
end
pic_new = uint8(pic_new);
figure(2);
imshow(pic_new);
[a,b] = size(pic_new);
% 开始分割图像
vertical_num = floor(a/pulse_num);
count = 0;
for j = 1:vertical_num
c = j;
for i = 1:b
d = i;
count = count + 1;
small_pic = pic_new(1500*(j-1)+1:1500*(j),i);
new_path = sprintf('%s%07d.jpg',path,(i + (b*(j-1))));
imwrite(small_pic,new_path);
end
end