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邻域块球平均值输出对应像素值。

  • 相关阅读:
    B树,B+树
    中断
    死锁
    无锁队列
    Cookie和Session
    分布式系统一致性
    c++ 标准库迭代器失效
    html5 app图片预加载
    html5 手机APP计算高度问题
    html5 750 REM JS换算方法
  • 原文地址:https://www.cnblogs.com/byteHuang/p/6783496.html
Copyright © 2011-2022 走看看