文档

colfilt

按列邻域操作

语法

B = colfilt(A,[m n],block_type,fun)
B = colfilt(A,[m n],[mblock nblock],block_type,fun)
B = colfilt(A,'indexed',___

描述

例子

B= colfilt (一个(mn)block_type有趣的处理图像一个通过重新排列——- - - - - -n一个成一列的临时矩阵,然后应用函数有趣的对这个矩阵。colfilt一个,如有需要。

B= colfilt (一个(mn)[mblock nblock]block_type有趣的细分一个划分成不同的区域mblock——- - - - - -nblock块来节省内存。方法时,操作的结果不会改变[mblock nblock]论点。

例如,如果[mblock nblock][3 - 4]每个块的大小是16乘16像素,那么colfilt将图像细分为大小为48 × 64像素的区域,并分别处理每个区域。

B= colfilt (一个“索引”,___流程一个作为一个索引图像,填充0S是类一个uint8uint16,或逻辑,和填充1否则。

例子

全部折叠

这个例子展示了如何使用列邻域处理将每个输出像素设置为输入像素的5x5邻域的平均值。

将灰度图像读入工作区。

I = imread(“tire.tif”);

按列过滤。这个函数的意思是在每个5 × 5像素的邻域上调用。

I2 = uint8(colfilt(I,[5 5],“滑动”@mean));

显示原始图像和过滤后的图像。

imshow (I)标题(原始图像的

图imshow(I2)标题(过滤后的图像的

输入参数

全部折叠

控件支持的任何类的数组万博1manbetx有趣的

块大小,指定为2元素的正整数向量。行数是和吗n是每个块中的列数。

块组大小,指定为2元素的正整数向量。mblock组中方块的数量是垂直方向的,和nblock是水平方向上组中的块数。

块类型,指定为“滑动”对于滑动小区或“不同”对于不同的块。

数据类型:字符|字符串

函数句柄,指定为句柄。的值决定此函数的输入和输出参数block_type.有关更多信息,请参见算法

有关函数句柄的详细信息,请参见创建函数句柄(MATLAB)。

输出参数

全部折叠

过滤后的图像,作为数字矩阵返回。

算法

这个算法colfilt用于处理图像的值取决于block_type

价值

描述

“不同”

  • 首先,colfilt将每个——- - - - - -n一个属性转换为临时矩阵中的列im2col函数。

  • 接下来,colfilt应用函数有趣的到这个临时矩阵。有趣的必须返回与临时矩阵相同大小的矩阵。

  • 最后,colfilt重新排列返回的矩阵的列有趣的——- - - - - -n的方法来区分不同的块col2im函数。

“滑动”

  • 首先,colfilt将每个——- - - - - -n附近的一个属性转换为临时矩阵中的列im2col函数。

  • 接下来,colfilt应用函数有趣的到这个临时矩阵。有趣的必须返回一个行向量,其中包含临时矩阵中每列的单个值。(列压缩函数,如总和返回适当类型的输出。)

  • 最后,colfilt对返回的向量进行重塑有趣的变成一个同样大小的矩阵一个,可使用重塑函数。

为了节省内存,使用colfilt函数可以分为一个分成子图像,一次处理一个子图像。这意味着有趣的可以调用多次,那第一个参数要去吗有趣的每次可以有不同数量的列。

R2006a之前介绍

这个话题有用吗?