最佳实践,在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。因此,您可以轻松地为您的图像检查这一点。
相关文章:
- Difference in displaying cv2 Mat
- 使用CMake检测支持的C++标准
- 当套接字连接断开时检测C/C++Unix
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 下面是我为检测链接列表中的循环而制作的代码
- 落砂模拟碰撞检测C++和SFML
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么C++编译器没有检测到正确声明的类?
- 将CHW格式的浮点向量转换为cv::Mat
- C++中的openCV Mat访问冲突
- 检测win32服务创建和删除的最佳方法
- 正在LLVM中检测整数比较条件
- 如何在鼠标挂钩过程中检测拖动
- Haar检测-保存图像的Mat,以便获得并显示前一帧
- OpenCV级联分类器检测输入Mat边界外的MultiScale结果Rect
- 使用cv::Mat图像(opencv)如何检测对象
- 最佳实践,在Opencv中检测Mat是否为黑白