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

  • 相关阅读:
    Error: That port is already in use.
    笔记:django is not a registered namespace错误
    笔记:常用SQL语句
    django迁移数据库错误
    OperationalError: (1044, "Access denied for user ''@'localhost' to database 'mydb'")
    笔记:LNMP架构Web的高并发处理
    Debian ZSH解决每次ssh都需要source .bashrc问题
    Django第四天:博客项目实战
    js模板引擎之 Handlebars 基本用法
    创建发布自己的npm包
  • 原文地址:https://www.cnblogs.com/byteHuang/p/6783496.html
Copyright © 2011-2022 走看看