matlab的一些关于块分类的函数~~~

Posted byteH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab的一些关于块分类的函数~~~相关的知识,希望对你有一定的参考价值。

1. nlfilter(General sliding-neighborhood operations)

B = nlfilter(A, [m n], fun),这是一个其中A是图像[m  n]是图像处理区域的矩阵大小,fun是函数句柄,B是函数返回的一个标量。

意为对图像A的每个大小为m*n的patch进行fun函数的操作,patch的取法为滑动(sliding),即patch的中心像素遍历图像的每个点,当取到边界时需要进行边界延拓。fun必须是函数的句柄,可自由定义也可取matlab内置的函数。

例:这个例子是应用中值滤波对图像进行3*3的邻域滑块操作

A = imread(\'cameraman.tif\');
A = im2double(A);
fun = @(x) median(x(:));
B = nlfilter(A,[3 3],fun);
imshow(A), figure, imshow(B)

2.blockproc

不重叠的块运算命令(distinct block processing),调用格式:B = blockproc(A,[M N],fun);

意为对图像A的每个不重叠的大小为m*n的块进行fun函数的操作,级联的结果为B。

fun = @(block_struct) ...
std2(block_struct.data) * ones(size(block_struct.data));
I2 = blockproc(\'moon.tif\',[12 12],fun);
figure;
imshow(\'moon.tif\');
figure;
imshow(I2,[]);

I = imread(\'peppers.png\');
fun = @(block_struct) block_struct.data(:,:,[2 1 3]);
blockproc(I,[200 200],fun,\'Destination\',\'grb_peppers.tif\');
figure;
imshow(\'peppers.png\');
figure;
imshow(\'grb_peppers.tif\');

3. colfilter

调用格式:B = colfilt(A,[m n],block_type,fun)

意为将图像A重排成每列为m*n块拉成一列组成的临时矩阵,对该临时矩阵进行fun函数的操作

I = imread(\'tire.tif\');
I2 = uint8(colfilt(I,[5 5],\'sliding\',@mean));
figure
subplot(1,2,1), imshow(I), title(\'Original Image\')
subplot(1,2,2), imshow(I2), title(\'Filtered Image\')

对输入的5*5邻域块球平均值输出对应像素值。

 

以上是关于matlab的一些关于块分类的函数~~~的主要内容,如果未能解决你的问题,请参考以下文章

最新 VS2008 和 MatlabR2015a 混合编程

MATLAB 的函数句柄

关于matlab里的PSNR问题

定点 MATLAB DSP 算法

matlab中hist函数的用法

matlab基本语法