日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

OpenCV图像增强(一)——多尺度视网膜增强

發(fā)布時(shí)間:2025/3/21 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV图像增强(一)——多尺度视网膜增强 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

1.在處理攝像頭時(shí),或者在圖像中物體輪廓提取時(shí),常常會碰到一些背景偏暗的圖像,為了更好的得到效果,那么圖像增強(qiáng)會是一個(gè)不錯(cuò)的選擇。
2.我這里使用的庫OpenCV版本是3.30,關(guān)于opencv學(xué)習(xí),有興趣的看我之前發(fā)的博客,可以加之前博客后面給的興趣群。

代碼演示

1.代碼

/*多尺度視網(wǎng)膜增強(qiáng)*/ //第一個(gè)參數(shù)輸入的原始圖像 //第二參數(shù)輸出的圖像 //第三個(gè)參數(shù) void multiScaleRetinex(const Mat &src, Mat &dst) {//增強(qiáng)尺度int gain = 128;int offset = 128;Mat dst_log, dst_f, res_f;vector<double> sigemas;vector<double> weights;for (int i = 0; i < 3; i++){weights.push_back(1.f / 3);}sigemas.push_back(30);sigemas.push_back(150);sigemas.push_back(300);//轉(zhuǎn)換數(shù)據(jù)src.convertTo(dst_f, CV_32FC3);//對數(shù)變換log(dst_f, dst_log);//根據(jù)給定的權(quán)重歸一化double weight = 0;size_t num = weights.size();for (size_t i = 0; i < num; i++){weight += weights[i];}if (weight != 1.0f){dst_log *= weight;}//過濾for (size_t i = 0; i < num; i++){Mat blur = dst_f.clone();gaussianFilter(blur, sigemas[i]);log(blur, res_f);//計(jì)算加權(quán)差res_f *= weights[i];dst_log -= res_f;}dst = (dst_log * gain) + offset;dst.convertTo(dst, CV_8UC3); }//高斯濾波 void gaussianFilter(Mat &img, double sigma) {int filter_size;//不能大于300,大于300強(qiáng)行改成300if (sigma > 300){sigma = 300;}//獲取濾波器的大小,轉(zhuǎn)為奇數(shù)filter_size = (int)floor(sigma * 6) / 2;filter_size = filter_size * 2 + 1;//如果小于3則返回if (filter_size < 3){return;}//高斯模數(shù)GaussianBlur(img, img, cv::Size(filter_size, filter_size), 0); }

2.運(yùn)行效果

總結(jié)

以上是生活随笔為你收集整理的OpenCV图像增强(一)——多尺度视网膜增强的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。