真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++怎么實現(xiàn)直方圖歸一化

本篇內(nèi)容主要講解“C++怎么實現(xiàn)直方圖歸一化”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“C++怎么實現(xiàn)直方圖歸一化”吧!

10年積累的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有陳倉免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

圖像處理100問,這個項目切切實實的包含了100個各種直擊你薄弱底子的問題,看完可以幫你完善很多的知識漏洞和誤區(qū)。

C++怎么實現(xiàn)直方圖歸一化

直接看看目錄吧:

C++怎么實現(xiàn)直方圖歸一化

C++怎么實現(xiàn)直方圖歸一化

C++怎么實現(xiàn)直方圖歸一化

截取了三張,應(yīng)該能看出他覆蓋的還是很全面的了叭。附帶python和c++兩套代碼,可以根據(jù)自己條件選擇。

來隨便找一個問題看看:

C++怎么實現(xiàn)直方圖歸一化

問題簡單直接,還附帶一點點知識點介紹,該項目作者本人奉行的是手寫代碼實現(xiàn),而不是簡單的調(diào)用一句opencv的API,可以看看這道題的答案:

C++版:

#include #include #include #include // histogram normalizationcv::Mat histogram_normalization(cv::Mat img, int a, int b){  // get height and width  int width = img.cols;  int height = img.rows;  int channel = img.channels();
 int c, d;  int val;
 // prepare output  cv::Mat out = cv::Mat::zeros(height, width, CV_8UC3);
 // get [c, d]  for (int y = 0; y < height; y++){    for (int x = 0; x < width; x++){      for (int _c = 0; _c < channel; _c++){        val = (float)img.at(y, x)[_c];        c = fmin(c, val);        d = fmax(d, val);      }    }  }
 // histogram transformation  for (int y = 0; y < height; y++){    for ( int x = 0; x < width; x++){      for ( int _c = 0; _c < 3; _c++){        val = img.at(y, x)[_c];
       if (val < a){          out.at(y, x)[_c] = (uchar)a;        }        else if (val <= b){          out.at(y, x)[_c] = (uchar)((b - a) / (d - c) * (val - c) + a);        }        else {          out.at(y, x)[_c] = (uchar)b;        }      }    }  }
 return out;}
int main(int argc, const char* argv[]){  // read image  cv::Mat img = cv::imread("imori_dark.jpg", cv::IMREAD_COLOR);
 // histogram normalization  cv::Mat out = histogram_normalization(img, 0, 255);
 //cv::imwrite("out.jpg", out);  cv::imshow("answer", out);  cv::waitKey(0);  cv::destroyAllWindows();
 return 0;}

python版本:

import cv2import numpy as npimport matplotlib.pyplot as plt
# histogram normalizationdef hist_normalization(img, a=0, b=255):  # get max and min  c = img.min()  d = img.max()
 out = img.copy()
 # normalization  out = (b-a) / (d - c) * (out - c) + a  out[out < a] = a  out[out > b] = b  out = out.astype(np.uint8)
 return out
# Read imageimg = cv2.imread("imori_dark.jpg").astype(np.float)H, W, C = img.shape
# histogram normalizationout = hist_normalization(img)
# Display histogramplt.hist(out.ravel(), bins=255, rwidth=0.8, range=(0, 255))plt.savefig("out_his.png")plt.show()
# Save resultcv2.imshow("result", out)cv2.waitKey(0)cv2.imwrite("out.jpg", out)

到此,相信大家對“C++怎么實現(xiàn)直方圖歸一化”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


分享文章:C++怎么實現(xiàn)直方圖歸一化
瀏覽路徑:http://weahome.cn/article/ijsdds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部