OpenCV打印出矩阵的一个元素
OpenCV printing out an element of a matrix
我试图打印存储图像的矩阵的元素,但由于某种原因,我遇到了调试错误。函数abort()继续调用。我已经粘贴了下面的代码:
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main(){
Mat img = imread("D:/OwnResearch/photo2.jpg");
std::cout << img.at<int>(1, 1, 1) << std::endl;
return 0;
}
我想知道是否有任何方法可以获得第I个、第j个、第k个元素或矩阵img(类型为Mat)?
您不能将任何类型与Mat::at()一起使用,您必须坚持它所绑定的类型。如果您imread()一个没有任何其他标志的图像,则此类型将是Vec3b(24位bgr),neverint。此外,在执行此操作之前,您必须检查imread是否真的成功:
Mat img = imread("D:/OwnResearch/photo2.jpg");
if ( ! img.empty() )
{
std::cout << img.at<Vec3b>(1, 1) << std::endl;
}
您可以访问任何元素,如下所示。
img.at<uchar>(x , y)[channel]
如果您从jpeg文件中读取,使用"uchar"应该会更好。
更详细:http://www.developerstation.org/2012/01/access-mat-in-c-using-opencv.html
相关文章:
- lower_bound()返回最后一个元素
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 仅显示链表的最后一个元素
- push_back通过自行创建的对象获取最后一个元素的向量
- 使用 map.end() 访问 map 的最后一个元素
- 如何知道地图中的最后一个元素是否被删除?
- 选择一个元素而不是一个对象的数组的原因
- std::矢量保存 只推送最后一个元素
- 为什么这个选择排序算法仍然切换一个元素,当它已经是其他元素中最小的元素时?
- 反转后不返回最后一个元素
- 如何在新数组较小时创建新数组并将旧数组的最后一个元素复制到新数组中?
- 访问 for_each 函数中的前一个元素
- 在 QListView 中显示最后一个元素
- 从 std::vector 中选择一个元素,而不是给定元素
- C++:在进行切片时对迭代器的约定,特别是对于访问最后一个元素并最终将其删除
- 遍历列表包含排除最后一个元素的内容
- 如何从一个无序集合中获取一个元素