精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java實現高斯模糊和圖像的空間卷積

開發 后端
高斯模糊(英語:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NET等圖像處理軟件中廣泛使用的處理效果,通常用它來減少圖像雜訊以及降低細節層次。

高斯模糊

高斯模糊(英語:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NET等圖像處理軟件中廣泛使用的處理效果,通常用它來減少圖像雜訊以及降低細節層次。這種模糊技術生成的圖像,其視覺效果就像是經過一個半透明屏幕在觀察圖像,這與鏡頭焦外成像效果散景以及普通照明陰影中的效果都明顯不同。高斯平滑也用于計算機視覺算法中的預先處理階段,以增強圖像在不同比例大小下的圖像效果。 從數學的角度來看,圖像的高斯模糊過程就是圖像與正態分布做卷積。由于正態分布又叫作高斯分布,所以這項技術就叫作高斯模糊。圖像與圓形方框模糊做卷積將會生成更加精確的焦外成像效果。由于高斯函數的傅立葉變換是另外一個高斯函數,所以高斯模糊對于圖像來說就是一個低通濾波器。

高斯模糊運用了高斯的正態分布的密度函數,計算圖像中每個像素的變換。

根據一維高斯函數,可以推導得到二維高斯函數:

其中r是模糊半徑,r^2 = x^2 + y^2,σ是正態分布的標準偏差。在二維空間中,這個公式生成的曲面的等高線是從中心開始呈正態分布的同心圓。分布不為零的像素組成的卷積矩陣與原始圖像做變換。每個像素的值都是周圍相鄰像素值的加權平均。原始像素的值有***的高斯分布值,所以有***的權重,相鄰像素隨著距離原始像素越來越遠,其權重也越來越小。這樣進行模糊處理比其它的均衡模糊濾波器更高地保留了邊緣效果。

其實,在iOS上實現高斯模糊是件很容易的事兒。早在iOS 5.0就有了Core Image的API,而且在CoreImage.framework庫中,提供了大量的濾鏡實現。

+(UIImage *)coreBlurImage:(UIImage *)image withBlurNumber:(CGFloat)blur 
{ 
    CIContext *context = [CIContext contextWithOptions:nil]; 
    CIImage *inputImage= [CIImage imageWithCGImage:image.CGImage]; 
    //設置filter
    CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"]; 
    [filter setValue:inputImage forKey:kCIInputImageKey]; [filter setValue:@(blur) forKey: @"inputRadius"]; 
    //模糊圖片
    CIImage *result=[filter valueForKey:kCIOutputImageKey]; 
    CGImageRef outImage=[context createCGImage:result fromRect:[result extent]];       
    UIImage *blurImage=[UIImage imageWithCGImage:outImage];           
    CGImageRelease(outImage); 
    return blurImage;
}

在Android上實現高斯模糊也可以使用原生的API—–RenderScript,不過需要Android的API是17以上,也就是Android 4.2版本。

    /**      * 使用RenderScript實現高斯模糊的算法      * @param bitmap      * @return      */
    public Bitmap blur(Bitmap bitmap){
        //Let's create an empty bitmap with the same size of the bitmap we want to blur
        Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
        //Instantiate a new Renderscript
        RenderScript rs = RenderScript.create(getApplicationContext());
        //Create an Intrinsic Blur Script using the Renderscript
        ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
        //Create the Allocations (in/out) with the Renderscript and the in/out bitmaps
        Allocation allIn = Allocation.createFromBitmap(rs, bitmap);
        Allocation allOut = Allocation.createFromBitmap(rs, outBitmap);
        //Set the radius of the blur: 0 < radius <= 25
        blurScript.setRadius(20.0f);
        //Perform the Renderscript
        blurScript.setInput(allIn);
        blurScript.forEach(allOut);
        //Copy the final bitmap created by the out Allocation to the outBitmap
        allOut.copyTo(outBitmap);
        //recycle the original bitmap
        bitmap.recycle();
        //After finishing everything, we destroy the Renderscript.
        rs.destroy();

        return outBitmap;

    }

我們開發的圖像框架cv4j也提供了一個濾鏡來實現高斯模糊。

GaussianBlurFilter filter = new GaussianBlurFilter();
filter.setSigma(10);

RxImageData.bitmap(bitmap).addFilter(filter).into(image2);

可以看出,cv4j實現的高斯模糊跟RenderScript實現的效果一致。

其中,GaussianBlurFilter的代碼如下:

public class GaussianBlurFilter implements CommonFilter {
    private float[] kernel;
    private double sigma = 2;
    ExecutorService mExecutor;
    CompletionService<Void> service;

    public GaussianBlurFilter() {
        kernel = new float[0];
    }

    public void setSigma(double a) {
        this.sigma = a;
    }

    @Override
    public ImageProcessor filter(final ImageProcessor src){
        final int width = src.getWidth();
        final int height = src.getHeight();
        final int size = width*height;
        int dims = src.getChannels();
        makeGaussianKernel(sigma, 0.002, (int)Math.min(width, height));

        mExecutor = TaskUtils.newFixedThreadPool("cv4j",dims);
        service = new ExecutorCompletionService<>(mExecutor);

        // save result
        for(int i=0; i<dims; i++) {

            final int temp = i;
            service.submit(new Callable<Void>() {
                public Void call() throws Exception {
                    byte[] inPixels = src.toByte(temp);
                    byte[] temp = new byte[size];
                    blur(inPixels, temp, width, height); // H Gaussian
                    blur(temp, inPixels, height, width); // V Gaussain
                    return null;
                }
            });
        }

        for (int i = 0; i < dims; i++) {
            try {
                service.take();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

        mExecutor.shutdown();
        return src;
    }

    /**      * <p> here is 1D Gaussian        , </p>      *      * @param inPixels      * @param outPixels      * @param width      * @param height      */
    private void blur(byte[] inPixels, byte[] outPixels, int width, int height)     {
        int subCol = 0;
        int index = 0, index2 = 0;
        float sum = 0;
        int k = kernel.length-1;
        for(int row=0; row<height; row++) {
            int c = 0;
            index = row;
            for(int col=0; col<width; col++) {
                sum = 0;
                for(int m = -k; m< kernel.length; m++) {
                    subCol = col + m;
                    if(subCol < 0 || subCol >= width) {
                        subCol = 0;
                    }
                    index2 = row * width + subCol;
                    c = inPixels[index2] & 0xff;
                    sum += c * kernel[Math.abs(m)];
                }
                outPixels[index] = (byte)Tools.clamp(sum);
                index += height;
            }
        }
    }

    public void makeGaussianKernel(final double sigma, final double accuracy, int maxRadius) {
        int kRadius = (int)Math.ceil(sigma*Math.sqrt(-2*Math.log(accuracy)))+1;
        if (maxRadius < 50) maxRadius = 50;         // too small maxRadius would result in inaccurate sum.
        if (kRadius > maxRadius) kRadius = maxRadius;
        kernel = new float[kRadius];
        for (int i=0; i<kRadius; i++)               // Gaussian function
            kernel[i] = (float)(Math.exp(-0.5*i*i/sigma/sigma));
        double sum;                                 // sum over all kernel elements for normalization
        if (kRadius < maxRadius) {
            sum = kernel[0];
            for (int i=1; i<kRadius; i++)
                sum += 2*kernel[i];
        } else
            sum = sigma * Math.sqrt(2*Math.PI);

        for (int i=0; i<kRadius; i++) {
            double v = (kernel[i]/sum);
            kernel[i] = (float)v;
        }
        return;
    }
}

空間卷積

二維卷積在圖像處理中會經常遇到,圖像處理中用到的大多是二維卷積的離散形式。

以下是cv4j實現的各種卷積效果。

cv4j 目前支持如下的空間卷積濾鏡

filter 名稱 作用
ConvolutionHVFilter 卷積 模糊或者降噪
MinMaxFilter ***最小值濾波 去噪聲
SAPNoiseFilter 椒鹽噪聲 增加噪聲
SharpFilter 銳化 增強
MedimaFilter 中值濾波 去噪聲
LaplasFilter 拉普拉斯 提取邊緣
FindEdgeFilter 尋找邊緣 梯度提取
SobelFilter 梯度 獲取x、y方向的梯度提取
VarianceFilter 方差濾波 高通濾波
MaerOperatorFilter 馬爾操作 高通濾波
USMFilter USM 增強

總結

cv4j 是gloomyfish和我一起開發的圖像處理庫,目前還處于早期的版本。

目前已經實現的功能:

這周,我們對 cv4j 做了較大的調整,對整體架構進行了優化。還加上了空間卷積功能(圖片增強、銳化、模糊等等)。接下來,我們會做二值圖像的分析(腐蝕、膨脹、開閉操作、輪廓提取等等)

責任編輯:張燕妮 來源: fengzhizi715
相關推薦

2017-01-17 16:45:35

githubinstagramandroid

2023-09-26 21:53:27

Java圖像處理

2012-11-15 09:43:08

開發算法高斯模糊

2024-10-10 16:02:34

2023-11-24 09:26:29

Java圖像

2016-08-30 21:36:56

JavascriptCSSWeb

2010-10-29 16:41:12

Oracle模糊查詢

2022-06-16 10:29:33

神經網絡圖像分類算法

2022-10-11 23:35:28

神經網絡VGGNetAlexNet

2023-09-25 10:13:59

Java識別

2010-11-16 11:32:54

ORACLE增加表空間

2018-03-13 15:01:12

神經網絡卷積網絡圖像

2009-07-22 11:27:36

iBATIS模糊查詢

2009-06-11 10:35:49

圖像下拉列表imgdiv

2021-01-14 09:37:20

內核空間用戶

2024-08-14 09:12:45

2011-03-29 16:55:56

高斯林Java之父高司令

2025-03-20 14:24:21

2017-09-08 13:30:32

深度學習圖像識別卷積神經網絡

2021-12-08 11:30:41

Python全景拼接代碼
點贊
收藏

51CTO技術棧公眾號

性欧美暴力猛交另类hd| 你懂得影院夜精品a| 国产精品66部| 性欧美在线看片a免费观看| 国产夫妻性爱视频| 成人国产激情在线| 亚洲综合久久av| 就去色蜜桃综合| 中文字幕+乱码+中文| 欧美不卡高清| 亚洲女同精品视频| 国产无遮挡猛进猛出免费软件| 深夜国产在线播放| 91在线小视频| 91久久精品国产91性色| 日本在线观看视频网站| 日韩欧美大片| 精品福利一区二区三区免费视频| 国产一区二区三区精彩视频| 成人黄色在线电影| 久久精品亚洲麻豆av一区二区| 91社区国产高清| 一本一道无码中文字幕精品热| 久久久久亚洲| 亚洲香蕉av在线一区二区三区| 欧美一区二区三区影院| 蜜桃成人精品| 午夜欧美大尺度福利影院在线看| 色综合视频二区偷拍在线 | 色爱区综合激月婷婷| 9999在线观看| 黄色电影免费在线看| 国产suv精品一区二区883| 国产精品久久久久久久久久久久久| 日日骚一区二区三区| av一区二区在线播放| 日韩成人中文字幕在线观看| 日本在线视频播放| 中文字幕综合| 欧美性猛交xxxxxx富婆| 少妇av一区二区三区无码| 中文在线观看免费| 亚洲三级久久久| 日韩片电影在线免费观看| 天堂a√在线| 不卡的av中国片| av一本久道久久波多野结衣| 国产夫绿帽单男3p精品视频| 九九**精品视频免费播放| 国产www精品| 日本高清不卡码| 一区二区三区导航| 国内伊人久久久久久网站视频| 免费无遮挡无码永久在线观看视频| 久久久久国产精品| 日韩亚洲一区二区| 中文字幕乱码av| 99精品国产一区二区三区| 中文字幕欧美日韩| 亚洲一区 欧美| 欧美一级淫片| 亚洲欧美一区二区三区四区| 色婷婷成人在线| 国产成人毛片| 色综合激情久久| aa免费在线观看| 婷婷电影在线观看| 婷婷成人激情在线网| 欧美一区二区视频在线播放| 国产大片在线免费观看| 国产日产欧美一区| 日韩高清专区| 国产美女性感在线观看懂色av| 26uuu国产日韩综合| 久久久久久久有限公司| 头脑特工队2免费完整版在线观看| 丁香另类激情小说| 91亚洲国产成人精品性色| 中文字幕在线视频第一页| 蜜乳av一区二区| 国产精品吴梦梦| 在线观看av大片| 久久国产人妖系列| 91久久精品美女高潮| 夜夜嗨av禁果av粉嫩avhd| 免费欧美在线视频| 成人在线视频福利| 国产人妖在线播放| 高清不卡一二三区| 国产午夜精品一区| 国产综合无码一区二区色蜜蜜| 99精品国产视频| 欧美日本亚洲| 在线日本视频| 亚洲精品v日韩精品| www.xxx麻豆| 国产社区精品视频| 91国内精品野花午夜精品| 一级片视频免费观看| 亚洲精品aa| 日韩欧美另类在线| 中文字幕 亚洲一区| 国产一区二区三区亚洲| 国产一区二区三区在线播放免费观看| 国产黄色录像视频| 欧美国产专区| 91精品国产高清久久久久久91| 日韩人妻精品中文字幕| 日韩电影免费在线| 97超碰资源| 五月激情六月婷婷| 国产精品九色蝌蚪自拍| 国产精品啪啪啪视频| 捆绑调教日本一区二区三区| 欧美日韩美少妇| 性活交片大全免费看| 精品国产一区二区三区久久久蜜臀| 中文字幕在线亚洲| 青娱乐免费在线视频| 亚洲一区国产一区| 国产日韩精品综合网站| 免费国产精品视频| 欧美国产一区视频在线观看| 国产毛片久久久久久国产毛片| 电影一区二区三区| 欧美一区二区三区免费在线看 | 久久精品日韩欧美| 91久久精品久久国产性色也91| 凸凹人妻人人澡人人添| 亚洲桃色在线一区| 欧美日韩国产精品激情在线播放| 偷拍自拍亚洲| 亚洲欧美日韩成人| 国产精彩视频在线观看| 精品一区二区三区日韩| 日韩aⅴ视频一区二区三区| 日日夜夜天天综合入口| 欧美三级电影网站| 日本黄色免费观看| 99久久精品费精品国产| 热99久久精品| 黄色成人一级片| 国产精品灌醉下药二区| 国产成人亚洲精品无码h在线| 精品久久国产一区| 在线亚洲午夜片av大片| 日本三级欧美三级| 国产综合久久久久久鬼色| 日本一区二区三不卡| 国产网站在线| 日韩欧美久久一区| 少妇aaaaa| 蜜乳av一区二区三区| 日本一区二区三区视频在线观看| 99riav视频在线观看| 精品区一区二区| 五月综合色婷婷| 精品一区二区免费视频| 亚洲国产精品视频一区| 成人软件在线观看| 日韩精品999| 国产一级做a爰片在线看免费| 国产精一品亚洲二区在线视频| 日韩精品久久久| 欧美大片免费观看网址| 亚洲精品视频二区| 中文字幕亚洲高清| 91色porny在线视频| 男女猛烈激情xx00免费视频| 大奶在线精品| 性金发美女69hd大尺寸| 天堂在线视频观看| 午夜精品久久久久久| 天天干天天操天天玩| 成人看的羞羞网站| 欧美最猛黑人xxxx黑人猛叫黄| 精品美女视频在线观看免费软件| 欧美性xxxx极品高清hd直播 | 91麻豆swag| 国内性生活视频| 国产精品一区二区av日韩在线| 欧美中文在线字幕| 理论在线观看| 欧美性猛交xxxx乱大交退制版| 青青青在线免费观看| 国产成人免费在线观看| 国产真人做爰毛片视频直播| 麻豆成人入口| 日韩av片免费在线观看| 国产美女性感在线观看懂色av| 精品视频一区 二区 三区| 在线免费看av网站| 成人av综合一区| 播放灌醉水嫩大学生国内精品| 欧美日一区二区| 91视频88av| 国产乱码午夜在线视频| 亚洲嫩模很污视频| 国产尤物在线观看| 亚洲成av人片一区二区梦乃| 北岛玲一区二区| 日韩av一区二区在线影视| 日韩影片在线播放| 成功精品影院| 国产精品福利观看| 最新日本在线观看| 日韩精品在线观看一区二区| 中文字幕在线日本| 亚洲免费在线视频| 丰满大乳奶做爰ⅹxx视频 | kk眼镜猥琐国模调教系列一区二区| 毛片av在线播放| 日韩欧美黄色| 成人av在线亚洲| 欧美13videosex性极品| 久久亚洲影音av资源网| 五月婷婷六月丁香| 欧美精品xxxxbbbb| 日产精品久久久| 成人欧美一区二区三区在线播放| 美女又黄又免费的视频| 国产精品视区| 免费成人深夜夜行网站视频| 香蕉久久精品日日躁夜夜躁| 91人人爽人人爽人人精88v| 伊人久久综合一区二区| 欧美精品亚州精品| www视频在线观看免费| 精品国精品自拍自在线| 日本视频www| 亚洲欧美另类综合偷拍| 少妇太紧太爽又黄又硬又爽小说| 大尺度一区二区| 福利片一区二区三区| 一区二区高清| 免费网站在线观看视频| 日韩精品欧美激情一区二区| 精品久久蜜桃| 日本在线一区二区| 国产精品久久久久久久天堂| 高清精品在线| 免费91麻豆精品国产自产在线观看| 美女欧美视频在线观看免费 | 欧美久久精品一级c片| 超碰97人人在线| 亚洲欧美专区| 国产精品手机播放| 成人私拍视频| 2020国产精品视频| 蜜桃麻豆影像在线观看| 欧美激情18p| 成人看片免费| 不卡av日日日| 蜜桃av在线免费观看| 中文字幕视频一区二区在线有码| 日本大臀精品| 欧美精品一区二区久久久| 欧美特级特黄aaaaaa在线看| 日韩精品一区二区三区蜜臀| av中文字幕播放| 欧美精品 日韩| 一二三四区视频| 欧美日产在线观看| 一级黄色片在线播放| 欧美日韩国产综合久久| 天天爱天天做天天爽| 欧美日韩在线三级| 一区二区三区在线免费观看视频| 欧美伊人久久久久久午夜久久久久| 99热只有这里有精品| 精品欧美国产一区二区三区| 一区二区三区视频免费看| 午夜精品久久久久久不卡8050| 在线看的片片片免费| 亚洲综合久久久久| 日本熟女一区二区| 性做久久久久久| 一区二区三区福利视频| 一本到三区不卡视频| 无码人妻精品一区二区50| 在线一区二区观看| 国产乱子伦精品无码码专区| 欧美美女黄视频| 性猛交富婆╳xxx乱大交天津| 日韩欧美精品在线视频| 香蕉视频黄在线观看| 精品视频在线播放| 97电影在线观看| 在线播放国产一区中文字幕剧情欧美 | 国产精品免费播放| 色爱av美腿丝袜综合粉嫩av| 免费看a在线观看| 欧美大片免费观看| 日韩伦理精品| 国产一区二区丝袜| 在线观看视频一区二区三区| 久久riav| 久久免费大视频| 成人在线免费观看视频网站| 国产精品亚洲综合色区韩国| 亚洲精品一二三四五区| 日韩中文欧美在线| 国产免费一区二区三区最新6| 久久亚洲春色中文字幕久久久| 日韩精品电影一区二区三区| 亚洲精品伦理在线| 亚洲图片在线视频| 欧美日韩精品欧美日韩精品一| 国产三级第一页| 精品999久久久| 日本中文字幕在线播放| 久久久久久久999精品视频| 欧美日韩美女| 97超碰人人看人人| 狠狠做六月爱婷婷综合aⅴ| 国内外成人激情免费视频| 综合在线一区| 污网站免费在线| av欧美精品.com| 伊人久久久久久久久久久久久久| 午夜激情一区二区三区| 一级特黄特色的免费大片视频| 亚洲成人久久一区| 在线视频91p| 国产精品成人一区二区| 日韩精品成人| 宅男噜噜99国产精品观看免费| 亚洲经典视频在线观看| 北条麻妃亚洲一区| 国产日韩欧美精品一区| 99久热在线精品996热是什么| 67194成人在线观看| 国产三级电影在线观看| 久久久久久国产精品三级玉女聊斋| 欧美视频免费看| 久久精品日韩精品| 亚洲视频日本| 国产三级三级看三级| 95精品视频在线| 欧美日韩大片在线观看| 欧美精品日韩一本| 国产精品秘入口| 91高潮精品免费porn| 麻豆精品在线| 成年人视频大全| 久久精品国产精品青草| 欧美做受高潮6| 调教+趴+乳夹+国产+精品| 亚洲国产精品suv| 免费成人高清视频| 日韩有吗在线观看| 艳母动漫在线免费观看| 免费xxxx性欧美18vr| 手机看片福利视频| 在线日韩av片| 韩国精品视频| 国产精品福利在线| 国产一区二区欧美| 成人性做爰aaa片免费看不忠| 91蝌蚪porny| 九九热精品视频在线| 国产丝袜高跟一区| 久草成色在线| 精品免费视频123区| 亚洲美女少妇无套啪啪呻吟| 美女伦理水蜜桃4| 亚洲成人久久影院| 手机看片1024国产| 91精品国产网站| 欧美一级二级三级视频| 男人日女人逼逼| 久久久久国产一区二区三区四区 | 亚洲人成网站在线| 国产毛片一区二区三区va在线| 操日韩av在线电影| 亚洲福利影视| 成人黄色大片网站| 99国产精品视频免费观看| 圆产精品久久久久久久久久久| 亚洲国产成人精品久久| 筱崎爱全乳无删减在线观看| 久久精品国产综合精品| 首页综合国产亚洲丝袜| 蜜桃av免费在线观看| 欧美一区二区三区免费在线看 | ●精品国产综合乱码久久久久| 一区二区日韩视频| 欧美精品中文字幕一区| 国产精品巨作av| 少妇高清精品毛片在线视频 | 欧美精品一区在线发布| 丝袜脚交一区二区| 国产精品视频在| 亚洲精品一区二区三区蜜桃下载| 在线免费看h| 一本色道久久99精品综合| 国产传媒日韩欧美成人| 日本一区二区免费电影| 亚洲视频自拍偷拍| 爱高潮www亚洲精品|