用MATLAB给图像分块处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用MATLAB给图像分块处理相关的知识,希望对你有一定的参考价值。

要给一个64×64的图像分块成为16块(每块4×4),并且将每小块变成16×1的矩阵。
求源代码和说明。
非常着急,谢谢各位高手了!!!!!!!

先说明一个错误:64×64的图像分块(每块4×4)应该是256块,不是16块。

下面是程序
设A是64*64的图像矩阵

B=mat2cell(A,4*ones(1,16),4*ones(1,16));
B=reshape(cat(3,B:),16,[]);%B就是要求的矩阵,16行256列

%下面是说明
%大概的关系是这样的,设A=
%A1 A17 … A241
%A2 A18 … A242
%∶ ∶ ∶
%A16 A19 … A256
%(这里每个Ai都是4*4的矩阵块)
%那么B=
%B1 B2 B3 … B256
%每个Bi就是对应Ai的16*1列向量
%
%即假设Ai=
%a1 a5 a9 a13
%a2 a6 a10 a14
%a3 a7 a11 a15
%a4 a8 a12 a16
%
%那么Bi=
%a1
%a2
%∶
%a16
参考技术A 这个可以通过图像处理函数来实现,你可以找一幅图片传一下,我来给你做。

求高手给一个matlab提取图像lbp的代码 谢谢啦

之前用的代码是读取图像文件实现特征提取 但一次只能读取一张图片 我已经实现了213张图片的预处理 得到一个22968*213的矩阵的.mat文件 每一列是一张图片 有没有高手能用matlab实现实现这个.mat文件提取lbp特征 返回一个213列的lbp特征矩阵 每一列代表每张图片的lbp特征 多谢了
这是之前用的直接读取图像提取特征的代码
% 将彩色图像转换为黑白图像
[m,n,p] = size(IM);
if p == 3
IM = rgb2gray(IM);
end

% 扩大图像,以便处理
IMT = zeros(m+2,n+2);
IMT(2:m+1,2:n+1) = IM;

% 遍历每个像素点
wnd = zeros(3); % 3x3 的窗口矩阵
IMO = zeros(m,n);
for iii = 2:m+1
for jjj = 2:n+1
wnd = IMT(iii-1:iii+1,jjj-1:jjj+1);
% 二值化
for mmm = 1:3
for nnn = 1:3
if wnd(mmm,nnn) > wnd(2,2)
wnd(mmm,nnn) = 1;
else
wnd(mmm,nnn) = 0;
end
end
end
% 求出lbp值
lbp = wnd(1,1) + wnd(2,1)*2 + wnd(3,1)*4 + wnd(3,2)*8 + wnd(3,3)*16 + wnd(2,3)*32 + wnd(1,3)*64 + wnd(1,2)*128;
IMO(iii-1,jjj-1) = lbp;
end
end

参考技术A http://www.cse.oulu.fi/CMV/Downloads/LBPMatlab

以上是关于用MATLAB给图像分块处理的主要内容,如果未能解决你的问题,请参考以下文章

matlab高光谱影像读取保存分块

matlab学习笔记,图像分块

怎么用matlab对图像进行裁剪

信号处理基于小波变换的音频水印嵌入提取matlab源码

图像分块原理和实现个人理解和整理

关于分块的简单介绍