精华内容
下载资源
问答
  • 高斯滤波和均值滤波一样,都是利用一个掩膜和图像进行卷积求解。不同之处在于:均值滤波器的模板系数都是相同的,为1。而高斯滤波器的模板系数,随着距离模板中心距离的增大,系数减小(服从二维高斯分布)。所以,高....

    一. 高斯滤波

    高斯滤波是一种线性平滑滤波器,对于服从正态分布的噪声有很好的抑制作用。在实际场景中,我们通常会假定图像包含的噪声为高斯白噪声,所以在许多实际应用的预处理部分,都会采用高斯滤波抑制噪声。

    高斯滤波和均值滤波一样,都是利用一个掩膜和图像进行卷积求解。不同之处在于:均值滤波器的模板系数都是相同的,为1。而高斯滤波器的模板系数,随着距离模板中心距离的增大,系数减小(服从二维高斯分布)。所以,高斯滤波器相比于均值滤波器而言,对图像模糊程度较小,更能保持图像的整体细节。

    4eaf349de9e9

    二维高斯分布

    我们不必纠结于系数

    math?formula=%5Cfrac%7B1%7D%7B(%5Csqrt%7B2*%CF%80%7D*%5Csigma)%5E2%20%20%20%7D%20,因为它只是一个常数!并不会影响互相之间的比例关系,而且最终都要进行归一化,所以在实际计算时我们忽略它而只计算后半部分 

    math?formula=e%5E%7B-((x-ux)%5E2%2B(y-uy)%5E2)%2F2%5Csigma%20%5E2%7D

    其中(x,y)为掩膜内任一点的坐标,(ux,uy)为掩膜内中心点的坐标,在图像处理中可认为是整数;σ是标准差。

    例如:要产生一个3×3的高斯滤波器模板,以模板的中心位置为坐标原点进行取样。(x轴水平向右,y轴竖直向下)

    4eaf349de9e9

    模板在各个位置的坐标,如上图所示

    这样,将各个位置的坐标带入到高斯函数中,得到的值就是滤波器的系数。

    如果窗口模板的大小为 (2k+1)×(2k+1),则:

    4eaf349de9e9

    窗口模板中各个元素的计算公式

    这样计算出来的模板有两种形式:小数和整数。

    小数形式的模板,就是直接计算得到的值,没有经过任何的处理;

    整数形式的模板,需要进行归一化处理,将模板左上角的值归一化为1。使用整数的模板时,需要在模板的前面加一个系数,系数为模板中元素和的倒数。

    例如,标准差

    math?formula=%5Csigma%20=1.3 的 3*3 的整数形式的高斯滤波器如下:

    4eaf349de9e9

    标准差

    math?formula=%5Csigma%20 =1.3 的8近邻高斯滤波器如图

    σ的意义及选取

    通过上述的实现过程,不难发现,高斯滤波器模板的生成最重要的参数就是高斯分布的标准差σ。标准差代表着数据的离散程度,如果σ较小,那么生成的模板的中心系数较大,而周围的系数较小,这样对图像的平滑效果就不是很明显;反之,σ较大,则生成的模板的各个系数相差就不是很大,比较类似均值模板,对图像的平滑效果比较明显。

    4eaf349de9e9

    高斯分布的概率分布密度图

    可以看到:σ越小分布越瘦高,σ越大分布越矮胖。

    由于图像的长宽可能不是滤波器大小的整数倍,因此我们需要在图像的边缘补0,这种方法叫做 zero padding 。

    二. python实现高斯滤波

    算法流程:①对图像进行zero padding ②根据高斯滤波器的核大小和标准差大小实现高斯滤波器 ③使用高斯滤波器对图像进行滤波(相乘再相加)④输出高斯滤波后的图像

    代码如下:

    import cv2

    import numpy as np

    # Gaussian filter

    def gaussian_filter(img, K_size=3, sigma=1.3):

    if len(img.shape) == 3:

    H, W, C = img.shape

    else:

    img = np.expand_dims(img, axis=-1)

    H, W, C = img.shape

    ## Zero padding

    pad = K_size // 2

    out = np.zeros((H + pad * 2, W + pad * 2, C), dtype=np.float)

    out[pad: pad + H, pad: pad + W] = img.copy().astype(np.float)

    ## prepare Kernel

    K = np.zeros((K_size, K_size), dtype=np.float)

    for x in range(-pad, -pad + K_size):

    for y in range(-pad, -pad + K_size):

    K[y + pad, x + pad] = np.exp( -(x ** 2 + y ** 2) / (2 * (sigma ** 2)))

    K /= (2 * np.pi * sigma * sigma)

    K /= K.sum()

    tmp = out.copy()

    # filtering

    for y in range(H):

    for x in range(W):

    for c in range(C):

    out[pad + y, pad + x, c] = np.sum(K * tmp[y: y + K_size, x: x + K_size, c])

    out = np.clip(out, 0, 255)

    out = out[pad: pad + H, pad: pad + W].astype(np.uint8)

    return out

    # Read image

    img = cv2.imread("../paojie.jpg")

    # Gaussian Filter

    out = gaussian_filter(img, K_size=3, sigma=1.3)

    # Save result

    cv2.imwrite("out.jpg", out)

    cv2.imshow("result", out)

    cv2.waitKey(0)

    cv2.destroyAllWindows()

    三. python程序输出结果:

    4eaf349de9e9

    高斯滤波后图像

    4eaf349de9e9

    原图

    四. opencv函数 cv2.GaussianBlur(img,(3,3),1.3) 实现高斯滤波

    其中,(3,3)为滤波器的大小;1.3为滤波器的标准差,如果标准差这个参数设置为0,则程序会根据滤波器大小自动计算得到标准差。

    import cv2

    img=cv2.imread('../paojie.jpg')

    #(3, 3)表示高斯滤波器的长和宽都为3,1.3表示滤波器的标准差

    out=cv2.GaussianBlur(img,(3,3),1.3)

    cv2.imwrite('out.jpg',out)

    cv2.imshow('result',out)

    cv2.waitKey(0)

    cv2.destroyAllWindows()

    五. opencv函数GaussianBlur滤波结果:

    4eaf349de9e9

    GaussianBlur 函数输出结果

    六. matlab实现高斯滤波

    % 高斯滤波器大小为5*5,标准差为10

    clear all;close all;clc;

    OriImage=imread('F:\image_process\paojie.jpg');    %读入图片

    sigma1 = 10;      %高斯正态分布标准差

    grayImg=rgb2gray(OriImage);    %转为灰度图像

    gausFilter = fspecial('gaussian',[5 5],sigma1);  %高斯滤波

    blur=imfilter(grayImg,gausFilter,'replicate');    %对任意类型数组或多维图像进行滤波

    imshow(blur);

    七. matlab 高斯滤波输出结果

    4eaf349de9e9

    matlab 高斯滤波后图像

    八. 参考内容:

    展开全文
  • 用于生成圆形区域掩膜矩阵的函数,可指定矩阵尺寸,圆心位置以及半径。
  • matlab中的掩膜抠图

    万次阅读 热门讨论 2019-04-10 21:35:56
    matlab掩膜操作实现扣图 需要原图以及mask im=imread([origin image path]) segM=imread([mask path]) s_img=size(im); %%change the interested area to 1 for i=1:s_img(1) for j=1:s_img(2) if segM...

    改进版

    矩阵中的循环操作非常耗时,so 用矩阵逻辑与操作替代for循环

    one = ones(s_img(1), s_img(2));
    segM = segM & uint8(one);
    % for i=1:s_img(1)
    %     for j=1:s_img(2)
    %         if segM(i,j)==255
    %             segM(i,j)=1;
    %         end
    %     end
    % end

    ****************这是一道分割线*******************

    matlab的掩膜操作实现扣图

    需要原图以及mask

    im=imread([origin image path])
    segM=imread([mask path])
    s_img=size(im);
    %%change the interested area to 1
    for i=1:s_img(1)
        for j=1:s_img(2)
            if segM(i,j)==255
                segM(i,j)=1;
            end
        end
    end
    %%deal with the R, G, B channels
    R=im(:,:,1);
    G=im(:,:,2);
    B=im(:,:,3);
    result(:,:,1)=R.*uint8(segM);
    result(:,:,2)=G.*uint8(segM);
    result(:,:,3)=B.*uint8(segM);
    %%output the result
    imwrite([output path]);
    figure;
    imshow(result);

    下图是BSDS300数据集中的图片的运行结果

    原图-mask-生成目标图像

    (分割算法是post-processing to choose segmentation connected to fg strokes on top of BJ)

    禁止转载

    展开全文
  • 但是如果量大,就得选用掩膜IC制作方法,就是在制造IC的时候直接将声音固化到IC内,这样IC一出厂就可以使用,这种方式就叫做掩膜掩膜因为其特点,交货时间上会长一些,但是因为省略了中间那些工序,因此价格上会极具...

    什么是语音芯片掩膜MASK

    语音IC要将声音以一定的格式烧录到IC内,才能发出声音.一般IC是通过烧写器和拷贝机即可完成,像OTP一次性烧录芯片等。但是如果量大,就得选用掩膜IC制作方法,就是在制造IC的时候直接将声音固化到IC内,这样IC一出厂就可以使用,这种方式就叫做掩膜

    掩膜因为其特点,交货时间上会长一些,但是因为省略了中间那些工序,因此价格上会极具优势,一般而言,量大首先会考虑掩膜。

    掩膜(MASK)是MCU的一种存储器类型

    MCU按其存储器类型可分为MASK(掩模)ROM、OTP(一次性可编程)ROM、FLASH ROM等类型。MASK ROM的MCU价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合;FALSH ROM的MCU程序可以反复擦写,灵活性很强,但价格较高,适合对价格不敏感的应用场合或做开发用途;OTP ROM的MCU价格介于前两者之间,同时又拥有一次性可编程能力,适合既要求一定灵活性,又要求低成本的应用场合,尤其是功能不断翻新、需要迅速量产的电子产品。

    什么是MCU

    MCU(Micro Controller Unit),又称单片微型计算机(Single Chip Microcomputer),是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机。

    掩膜产品的最大优势:价格便宜.是量大产品的最好选择。

    上述资料都是个人经验总结,属原创,转载请注明出处.

    如有错误的地方,还请各路朋友不吝指教,先行谢过.

    展开全文
  • 本文基于光学原理,用Matlab实现三角形掩膜FFT现象仿真。 Project Code % 作者:ZQJ % 日期:2021.1.29 星期五 %***********************模拟三角孔掩膜及其傅里叶变换图样************************** clear,clc,...

    本文基于光学原理,用Matlab实现三角形掩膜FFT现象仿真。


    Project Code
    % 作者:ZQJ
    % 日期:2021.1.29 星期五
    
    %***********************模拟三角孔掩膜及其傅里叶变换图样**************************
    clear,clc,close all;
    triangle_image = double(rgb2gray((imread('三角孔掩膜.PNG'))));  %得到二维矩阵
    subplot(1,2,1);
    imagesc(triangle_image);colormap gray; axis square;
    title('Triangle Mask');
    
    subplot(1,2,2);
    imagesc(abs(fftshift(fft2(triangle_image))));
    colormap gray; axis square;
    title('Triangle TTF Figure');
    
    仿真结果图:

    在这里插入图片描述


    专栏内容供作者本人或大家学习使用,多多指教 ~

    展开全文
  • MATLAB做脑区域掩膜(mask)

    千次阅读 热门讨论 2020-03-30 15:27:53
    掩膜有很多种方法,可以自己写程序(当然我不会,哪位仁兄可以指点我一下),也可以借助已有的软件包。 REST 这个是FMRI处理比较早期的一个软件,最新的是RESTplus,我把REST和RESTplus都下载了,事实证明好像...
  • mpsnr 掩膜峰值信噪比 最大差 图像对比 图像相似 matlab
  • 本文基于信息光学初等函数及基础几何图形学,用Matlab定义并编写得到几何图形掩膜的函数。 Project Code 掩膜主函数定义如下: % 作者:ZQJ % 日期:2021.1.29 星期五 %***********************几何图形掩膜函数...
  • 需求使用Matlab读取tif格式的栅格数据,并根据该栅格数据裁剪多副其余栅格数据制作掩膜数据Mask_data = double(importdata('D:\GPP\ecology\eco1km\2015\eco1km.tif')); % 获取研究区栅格数据Mask_data(Mask_data==...
  • 在ENVI中进掩膜处理ENVI里如何利用矢量对影像进行掩膜如何将矢量转化成ROI以及如何使用掩摸工具都是处理影像常用的手段,在这里将两者串联在一起,讲叙了利用矢量范围圈定区域对影像进行掩膜的方法,这在实际应用...
  • clc;clear; data=imread('DR_ck_0001.tiff'); img = double(data); eps=0.04; log_img = log_trans(img);...img_basic = gradient_guidedfilter(log_img, log_img, eps);...img_detail = log_img-img_basic;...
  • 已知每个同心圆环的半径数值,存储在txt文件里面,希望能用matlab读取文件,然后编程画出每一个同心圆环,并生成.cif文件,麻烦各位大神指点编程算法,shi'fen'gan'xie
  • 掩膜,所以特意写了一个生成圆盘的matlab函数,当然经过修改,也可以生成圆环函数。  譬如,我们想在一个矩阵里提取以某一点为圆心,半径r内的元素,让这个圆范围外的元素都为0时,这就需要一个圆盘掩膜。但是按...
  • 摘要:ENVI5.3.1新增云自动检测工具,支持Landsat4-5 TM,Landsat7 ETM+,Landsat8 OLI/TIRS和NPP VIIRS 传感器数据,可生成云掩膜文件,使用Fmask3.2算法。需要输入多光谱波段的大气表观反射率图像,亮温和卷云波段...
  • %% 多边形边界外的不画图,掩膜处理 isin=inpolygon(point_p_lon,point_p_lat,dt.Points(k,1),dt.Points(k,2)); result1(~isin)=NaN; % pcolor(point_p_lon,point_p_lat,result1); % load MyColormaps;colormap...
  • 基于掩膜与仿中值滤波的边缘检测处理张建国1,王仁庆1,左俊彦1,候慧敏1,钟涛1,胡凤玲2,马千里1【摘要】摘要:针对医学图像特殊而又复杂的模糊边缘...用Matlab软件对提出的方法进行模拟,详细分析了掩膜对比的理论模...
  • clc; clear; close all; I=imread('JPCLN006.jpg');%读取图像 I = double(I); figure(1),imshow(I,[]) figure(2),imshow(I,colormap) ...II = imread('JPCLN006_mixture.gif');...III = imresize(II,0
  • VoTT视频标注生成的json标注文件转mask二值掩膜图像(matlab代码) 将json文件里的图片名称和标注点的顶点坐标信息提取出来,绘制在原始图像上,再将原始图像转换为二值图像。 代码分析: Jason2Mask.m %% %...

空空如也

空空如也

1 2 3 4 5
收藏数 97
精华内容 38
关键字:

matlab掩膜

matlab 订阅