zoukankan      html  css  js  c++  java
  • 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邻域块球平均值输出对应像素值。

  • 相关阅读:
    SQL事务
    C# 怎样读写EXCEL文件
    如何#读写EXCEL 文件 (http://space.cnblogs.com/question/7131/)
    C# 怎样读写EXCEL文件 (http://space.cnblogs.com/question/7131/)
    控制DataGirdView中單元格
    C#中ToString格式大全
    转贴:用SqlCommandBuilder 实现批量更新
    错题记录1
    Java—关于String的分析
    Java模拟双色球彩票
  • 原文地址:https://www.cnblogs.com/byteHuang/p/6783496.html
Copyright © 2011-2022 走看看