MATLAB与图像处理(三):图像分成块

来源:互联网 发布:mac充电器怎么用 编辑:程序博客网 时间:2024/06/05 03:08
首先是介绍imresize()函数的使用
1)B=imresize(A,m); %将图像A的高和宽分别扩大m倍;
2)B=imresize(A,[m,n]);%将图像的高和宽分别扩大到m,n

为什么要介绍这个呢?因为图像分块时可能出现小数个块,为了使用其能够最大程度的显示出图像来,先将图像变成其整数倍~~~

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. clc; clear all; close all;  
  2. I = imread('lena.jpg');  
  3. height= size(I, 1); %求出行  
  4. width = size(I, 2); %求出列  
  5. region_size = 256;  %区域宽高大小  
  6. numRow = round(height/region_size);%图像在垂直方向能分成多少个大小为region_size  
  7. numCol = round(width/region_size);%图像在水平方向能分成多少个大小为region_size  
  8. I=imresize(I,[numRow*region_size,numCol*region_size]);%重新生成新的图像,以防止temp下标越界  
  9.   
  10. t1 = (0:numRow-1)*region_size + 1; t2 = (1:numRow)*region_size;  
  11. t3 = (0:numCol-1)*region_size + 1; t4 = (1:numCol)*region_size;  
  12. figure;   
  13. k = 0;  
  14. for i = 1 : numRow  
  15.     for j = 1 : numCol  
  16.           
  17.         temp = I(t1(i):t2(i), t3(j):t4(j), :);  
  18.         k = k + 1;  
  19.         subplot(numRow, numCol, k);  
  20.         imshow(temp);         
  21.     end  
  22. end  
0 0
原创粉丝点击