Opencv Mat的可视化像素
Visualization pixel with Opencv Mat at
当我运行代码时,我不明白为什么输出是一个奇怪的数字:
int main(int argc, char** argv)
{
Mat im;
im = imread("lena.png", CV_LOAD_IMAGE_GRAYSCALE);
cout << im.at<uchar>(0, 0) << endl;
waitKey(0);
}
如果我可视化图像,我会看到正确的图像。我哪里错了?
因为它显示符号,如cout << char(123) << endl;
您必须使用int强制转换:
cout << (int) im.at<uchar>(0, 0) << endl;
如官方文档中所述,您不会直接获得实际强度值,而是一个标量。
试试这个:
Scalar intensity = im.at<uchar>(0, 0);
cout << intensity.val[0] << endl;
对于具有多个通道的图像,您可以使用:
Vec3b intensity = im.at<Vec3b>(0, 0);
cout << intensity.val[0] << intensity.val[1] << intensity.val[2] << endl;
相关文章:
- 可视化 如何在 c++ 中制作特定大小的文件?
- 可视化C++:发布模式的运行时库作为'Multi-threaded Debug DLL'
- 提升如何在图形可视化中写入边缘的权重?
- 如何在大型c++项目的可视化代码中设置调试
- 可视化编译与 C++ 中的 Extern 变量
- 可视化 Bazel C++预编译标头实现
- 无法为 X.radio 创建中等可视化,因为找不到网络节点可视化 - Omnet++
- C++合并排序可视化工具
- 可视化 使用 VS Code 查找C++应用程序中的内存泄漏
- 可视化 将字符串解析为数组以进行C++
- 可视化 如何在C++中将字符数组转换为 FILE 类型
- 可视化C++载体:未使用的容量
- 可视化 如何在 c++ 中截断
- 可视化 如何获取图像中像素的颜色(以C++ (sfml) 为单位)
- 红色伪像通过GSTREAMER和QT5可视化RTSP流
- 可视化/保存大量像素
- Opencv Mat的可视化像素
- 像素到网格可视化
- 基于像素的3D可视化
- 有没有轻量级的linux c++ IDE+像eclipse cdt这样的可视化调试器?