[英]Best practice, to detect if a Mat is black and White in Opencv
我想知道我讀的圖像是黑白還是彩色圖像。 我將Opencv用於我的所有流程。 為了檢測它,我目前讀取我的圖像,將其從BGR2GRAY轉換,我將原始的直方圖(讀作BGR)與第二個的直方圖(稱為B&W)進行比較。
在偽代碼中,這看起來像這樣:
cv::Mat img = read("img.png", -1);
cv::Mat bw = cvtColor(img.clone(), bw, CV_BGR2GRAY);
if (computeHistogram(img) == computeHistogram(bw))
cout << "Black And White !"<< endl;
有沒有更好的方法呢? 我正在尋找能實施的最輕的算法和最佳實踐。
謝謝您的幫助。
編輯:我忘了說我在HSL中轉換我的圖像以比較亮度直方圖。
以RGB格式存儲灰度圖像會導致所有三個字段相等。 這意味着對於以RGB格式保存的灰度圖像中的每個像素,我們都有R = G = B.因此,您可以輕松地檢查此圖像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.