假设现在讲一副图片分成10*10的网格,也就是将一副图像分成100等分的小块
图像img
首先需要找步长,也就是每个格子的边长为多少像素
[x,y] = size(img); %找图像大小
grid_x = floor(x/10); %将图像分成10*10的网格
grid_y = floor(y/10);
X = 1:grid_x:x;
Y = 1:grid_y:y;
步长找好了,就可以直接对相应的像素点进行操作,也就是在原图上标记网格
for i = 2:size(X,2) %%%%%%%%%%%%%%%%%%
for j = 1:y %%%%%%%%%%%%%%%%%%
img(X(i),j)=~img(X(i),j);
%img(X(i),j) = 1;
end
end %%%%% 画网格 %%%%%%%
for i = 2:size(Y,2)
for j = 1:x
img(j,Y(i))=~img(j,Y(i));
%img(X(i),j) = 1; %%%%%%%%%%%%%%%%%%%%
end
end %%%%%%%%%%%%%%%%%%%%%
figure,imshow(img)就可以了
特别的是,如果是三通道RGB图像,则需要将img改成双精度的
img=double(img); 即可
具体代码我放在这里