日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > PhotoShop算法實現進階-模糊濾鏡-高斯濾波(二十三)

PhotoShop算法實現進階-模糊濾鏡-高斯濾波(二十三)

來源:程序員人生   發布時間:2014-12-07 09:36:08 閱讀次數:5982次

PhotoShop算法實現進階-模糊濾鏡-高斯濾波(2103)

kezunhai@gmail.com

http://blog.csdn.net/kezunhai

        高斯模糊(Gaus Blur)采取2維高斯模板對圖象進行模糊處理,用于圖象模糊化(去除細節和噪聲),它的處理效果給人1種更佳柔和的感覺。

        1維高斯:


        2維高斯:



       理論上,高斯散布在所有定義域上都有非負值,這就需要1個無窮大的卷積核。實際上,僅需要取均值周圍3倍標準差內的值,之外部分直接去掉便可。 以下圖為1個標準差為1.0的整數值高斯核:


在有些場合,可以用下面的模塊來對高斯核進行近似:


本文實現算法根據用戶輸入的核尺寸和方差來計算高斯核,實現高斯濾波,高斯核創建算法以下:

// 創建高斯核 // kSize:卷積核的大小3、5、7等(3×3、5×5、7×7) // sigma:方差 void PhotoShop::CreateGaussKernel(float **pdKernel, int kSize, float sigma) { float dDis; //數組中1點到中心點距離 float dCenter = (kSize⑴)/2; float dSum = 0; float dValue; int i, j; //生成高斯數據 for ( i=0; i<kSize; i++) { for ( j=0; j<kSize; j++) { dDis = fabsf(i-dCenter) + fabsf(j-dCenter); // 用和來近似平方和的開方 dValue = exp(-dDis*dDis/(2*sigma*sigma+DBL_EPSILON)); pdKernel[i][j] = dValue; dSum+=dValue; } } //歸1化 for ( i=0; i<kSize; i++) { for ( j=0; j<kSize; j++) { pdKernel[i][j] /= (dSum+DBL_EPSILON); } } }
高斯濾波算法:

void PhotoShop::GaussianBlur(cv::Mat &img, cv::Mat &dst, int kSize, float sigma) { int height = img.rows; int width = img.cols; int chns = img.channels(); int i, j, k,p, q; // 分配高斯核空間 float **pKernel = new float*[kSize]; for ( i=0; i<kSize; i++) { pKernel[i] = new float[kSize]; ZeroMemory(pKernel[i], kSize*sizeof(float)); } CreateGaussKernel(pKernel, kSize, sigma); // 創建高斯核 if ( dst.empty()) dst.create(height, width, img.type()); float sum = 0; int border = (kSize⑴)/2; for ( i =border; i<height-border; i++) { unsigned char* dstData = (unsigned char*)dst.data + dst.step*i; for ( j=border; j<width-border; j++) { for ( k=0; k<chns; k++) { sum = 0; for ( p = -border; p<=border; p++) { for ( q = -border; q<=border; q++) { sum += getPixel(img, i+p, j+q, k)*pKernel[p+border][q+border]; } } dstData[j*chns+k] = saturate_cast<uchar>(sum+0.5); } // for k } } // for i }
       算法測試:


        高斯濾波由于其線性和良好的去噪效果,在很多算法中得到了廣泛的利用,如Canny算子的預處理就采取了高斯濾波,OpenCV中的Sobel算子的實現也采取高斯濾波作為預處理步驟,還是聞名古今的SIFT算子采取了高斯金字塔和高斯差分來進行候選特點點的提取,有興趣的朋友可以進1步深入了解高斯濾波的利用。

      作者:kezunhai 出處:http://blog.csdn.net/kezunhai 歡迎轉載或分享,但請務必聲明文章出處。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 五月婷婷激情 | 欧美中文字幕在线 | 久国久产久精永久网页 | 狠狠亚洲 | 中文字幕最新 | 国产 欧美 另类 | 久久精品毛片 | 久久国产欧美一区二区免费 | 91成人网| 中国一级特黄毛片大片 | 日韩一区二区三区av | 一本色道久久综合亚洲二区三区 | 欧美 日韩 国产 在线 | 国产精品三级 | 国产一区日韩 | 九九九久久久久久久 | 精品一区二区三区在线播放 | 久久国产精品免费一区二区三区 | 99在线观看 | 亚洲男人天堂视频 | 成人精品一区二区三区电影黑人 | 99国产精品国产精品久久 | av激情网 | 超碰成人97| 成人在线国产 | 国产中文字幕在线 | 精品久久毛片 | 6080av| 欧美在线观看一区 | 三级毛片在线 | 日韩av在线网 | 婷婷久久久 | 日本一二三区在线 | av电影在线观看网站 | 中文字幕一区二区三区在线观看 | 精品久久99 | 亚洲一区观看 | 精品成人一区 | 国产欧美久久一区二区三区 | 欧美在线视频免费观看 | 国产精品久久久久久在线 |