簡體   English   中英

最佳實踐,檢測Opencv中Mat是否為黑色和白色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM