iOS實現映像指定地區模糊,ios實現映像地區

來源:互聯網
上載者:User

iOS實現映像指定地區模糊,ios實現映像地區

  在大多影像處理中,我們會應用到高斯模糊處理映像,通常用它來減少映像雜訊以及降低細節層次。在此文中介紹了高斯模糊的實現和可選地區的模糊【美圖秀秀-背景虛化】

  高斯模糊的原理中,它是根據高斯曲線調節像素色值,它是有選擇地模糊映像。說得直白一點,就是高斯模糊能夠把某一點周圍的像素色值按高斯曲線統計起來,採用數學上加權平均的計算方法得到這條曲線的色值,最後能夠留下人物的輪廓,即曲線.是指當 Adobe Photoshop 將加權平均應用於像素時產生的鐘形曲線。在PS中間,你應該知道所有的顏色不過都是數字,各種模糊不過都是演算法。把要模糊的像素色值統計,用數學上加權平均的計算方法(高斯函數)得到色值,對範圍、半徑等進行模糊,大致就是高斯模糊。  高斯模糊演算法公式[使用常態分佈]          二維圖形表示形式 OpenGL ES 演算法實現
 1.0 / sqrt(2.0 * M_PI * pow(sigma, 2.0))) * exp(-pow(currentGaussianWeightIndex, 2.0) / (2.0 * pow(sigma, 2.0))

 

附:GLSL內建指數函數說明圖

 在GPUImage中我們可以使用GPUImageGaussianBlurFilter來實現高斯模糊。(GPUImageGaussianBlurFilter僅可以全圖模糊,而不能部分模糊)

texelSpacingMultiplier是模糊的強度,數值越大,模糊效果越明顯

blurRadiusInPixels是像素範圍,用於計算平均值。

高斯模糊應用

 1 + (UIImage *)applyGaussianBlur:(UIImage *)image 2 { 3     GPUImageGaussianBlurFilter *filter = [[GPUImageGaussianBlurFilter alloc] init]; 4 //    filter.texelSpacingMultiplier = 5.0; 5     filter.blurRadiusInPixels = 1.0; 6     [filter forceProcessingAtSize:image.size]; 7     GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image]; 8     [pic addTarget:filter]; 9     [pic processImage];10     [filter useNextFrameForImageCapture];11     return [filter imageFromCurrentFramebuffer];12 }

   

 

GPUImageGaussianSelectiveBlurFilter可以部分模糊,也就是選區外模糊 

excludeCircleRadius用來調整模糊地區

+ (UIImage *)applyGaussianSelectiveBlur:(UIImage *)image

{

    GPUImageGaussianSelectiveBlurFilter *filter = [[GPUImageGaussianSelectiveBlurFilter alloc] init];

    //    filter.texelSpacingMultiplier = 5.0;

    filter.excludeCircleRadius = 120 / 320.0;

    [filter forceProcessingAtSize:image.size];

    GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image];

    [pic addTarget:filter];

    [pic processImage];

    [filter useNextFrameForImageCapture];

    return [filter imageFromCurrentFramebuffer];

}

 

 

 

 

 

 

 

 

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.