亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

灰度世界算法原理及C++實現的示例分析

發布時間:2021-11-15 16:23:22 來源:億速云 閱讀:132 作者:柒染 欄目:大數據

這篇文章給大家介紹灰度世界算法原理及C++實現的示例分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

前置內容

人的視覺系統具有顏色恒常性,能從變化的光照環境和成像條件下獲取物體表面顏色的不變特性,但成像設備并不具有這樣的調節功能,不同的光照環境會導致采集到的圖像顏色與真實顏色存在一定程度的偏差,需要選擇合適的顏色平衡算法去消除光照環境對顏色顯示的影響。
灰度世界算法原理

灰度世界算法以灰度世界假設為基礎,假設為:對于一幅有著大量色彩變化的圖像,RGB3個分量的平均值趨于同一個灰度值Gray。從物理意思上講,灰度世界算法假設自然界景物對于光線的平均反射的均值在整體上是一個定值,這個定值近似為“灰色”。顏色平衡算法將這一假設強制應用于待處理的圖像,可以從圖像中消除環境光的影響,獲得原始場景圖像。
算法步驟

灰度世界算法原理及C++實現的示例分析

算法優缺點

此算法簡單快速,但是當圖像場景顏色并不豐富時,尤其是出現大量單色物體時,該算法會失效。

源碼實現

Mat GrayWorld(Mat src) {  vector <Mat> bgr;  cv::split(src, bgr);  double B = 0;  double G = 0;  double R = 0;  int row = src.rows;  int col = src.cols;  Mat dst(row, col, CV_8UC3);  for (int i = 0; i < row; i++) {    for (int j = 0; j < col; j++) {      B += 1.0 * src.at<Vec3b>(i, j)[0];      G += 1.0 * src.at<Vec3b>(i, j)[1];      R += 1.0 * src.at<Vec3b>(i, j)[2];    }  }  B /= (row * col);  G /= (row * col);  R /= (row * col);  printf("%.5f %.5f %.5f\n", B, G, R);  double GrayValue = (B + G + R) / 3;  printf("%.5f\n", GrayValue);  double kr = GrayValue / R;  double kg = GrayValue / G;  double kb = GrayValue / B;  printf("%.5f %.5f %.5f\n", kb, kg, kr);  for (int i = 0; i < row; i++) {    for (int j = 0; j < col; j++) {      dst.at<Vec3b>(i, j)[0] = (int)(kb * src.at<Vec3b>(i, j)[0]) > 255 ? 255 : (int)(kb * src.at<Vec3b>(i, j)[0]);      dst.at<Vec3b>(i, j)[1] = (int)(kg * src.at<Vec3b>(i, j)[1]) > 255 ? 255 : (int)(kg * src.at<Vec3b>(i, j)[1]);      dst.at<Vec3b>(i, j)[2] = (int)(kr * src.at<Vec3b>(i, j)[2]) > 255 ? 255 : (int)(kr * src.at<Vec3b>(i, j)[2]);    }  }  return dst;}

效果圖

灰度世界算法原理及C++實現的示例分析

灰度世界算法原理及C++實現的示例分析

結論

可以看到灰度世界算法有了白平衡的效果,并且該算法的執行速度非常之快。

關于灰度世界算法原理及C++實現的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

会昌县| 营山县| 出国| 南宁市| 共和县| 怀安县| 紫云| 牟定县| 县级市| 志丹县| 仙桃市| 泰来县| 元朗区| 铜梁县| 英超| 朝阳县| 洪江市| 南木林县| 分宜县| 巴塘县| 若羌县| 墨玉县| 凌源市| 东海县| 陈巴尔虎旗| 乌兰浩特市| 闽侯县| 宣恩县| 鸡西市| 石景山区| 翁牛特旗| 长治县| 元朗区| 晴隆县| 衡阳市| 蛟河市| 郁南县| 东海县| 丰都县| 金平| 宁津县|