opencv同态滤波
生活随笔
收集整理的這篇文章主要介紹了
opencv同态滤波
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//輸入灰度圖像
cv::Mat dst = cv::Mat::zeros(width,height,CV_32FC1);
src.convertTo(src,CV_32FC1);
for(int i = 0; i < width; ++i)
{float *sdata = src.ptr<float>(i);float *ldata = src.ptr<float>(i);for(int j= 0; j< width; ++j){ldata[j]=std::log(sdata[j]+1);}
}
//
cv::Mat d = cv::Mat::zeros(width,height,CV_32FC1);
cv::dct(src,d);
//
float gh,gl,c,d1,d2;
cv::Mat huv = cv::Mat::zeros(width,height,CV_32FC1);
for(int i = 0; i < width; ++i)
{float *huvdata = src.ptr<float>(i);for(int j= 0; j< width; ++j){d2 = std::pow(i-floor(width/2),2)+std::pow(j-floor(height/2),2);huvdata[j] = (gh-gl)*exp(-d2/(d1*d1))+gl;}
}
huv.ptr<float>(0)[0]=1.5;
dct = dct.mul(huv);
cv::idct(dct,dst);
for(int i = 0; i < width; ++i)
{float *sdata1 = src.ptr<float>(i);float *ddata1 = dst.ptr<float>(i);for(int j= 0; j< width; ++j){ddata1[j]=std::exp(sdata1[j]+1);}
}
dst.convertTo(dst,CV_8UC1);
總結
以上是生活随笔為你收集整理的opencv同态滤波的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术标书的写法
- 下一篇: 除去数组中的空字符元素array_fil