空灵学院

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 1802|回复: 0

基于Matlab的图像分块处理

[复制链接]

1137

主题

1761

帖子

7558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7558
发表于 2014-1-15 20:17:05 | 显示全部楼层 |阅读模式
以下内容摘自好友lyqmath新浪博客,在此借花献佛。

简介
在图像处理中,图像块操作是常用的操作之一。这里介绍一种分块方法。代码
  1. clc; clear all; close all;
  2. A = imread('cameraman.tif');
  3. info = imfinfo('cameraman.tif');
  4. wd = info.Width;
  5. hd = info.Height;
  6. num = 8;
  7. sub_wd = wd / num;
  8. sub_hd = hd / num;
  9. if ndims(A) == 3
  10.     B=rgb2gray(A);%把真彩图转换为灰度图
  11. else
  12.     B = A;
  13. end
  14. B=im2double(B);
  15. C=mat2cell(B, num*ones(1, sub_wd), num*ones(1, sub_hd));
  16. D=reshape(C,1,[]);
  17. for k = 1 : length(D)
  18.     E{k}=reshape(D{k},[],1);
  19. end
  20. %把像素转化为1列64行的矩阵
复制代码
  1. clc; clear all; close all;
  2. I = imread('cameraman.tif');
  3. sz = size(I);
  4. [x, y] = meshgrid(1:15:sz(2), 1:15:sz(1));
  5. z = ones(size(x));
  6. figure('units', 'normalized', 'position', [0 0 1 1], ...
  7.     'color', [55,190,254]/255);
  8. imshow(I, []);
  9. hold on; axis off;
  10. mesh(x, y, z, 'FaceColor', 'none', ...
  11.     'EdgeColor', 'r', 'LineWidth', 2, ...
  12.     'Marker', 'o', 'MarkerFaceColor', 'k', ...
  13.     'MarkerSize', 5);
复制代码
结果




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|空灵学院 ( 11033542 )

GMT+8, 2024-5-6 21:57 , Processed in 0.027618 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表