【问题标题】:OpenCV greyscale image to vectorOpenCV 灰度图像转矢量
【发布时间】:2014-04-09 19:39:30
【问题描述】:

我想将Mat 类型的灰度图像保存到向量列表中。它们的灰度图像包含诸如110123150 等值......当我使用我的代码将数据传输到向量列表中并且在传输数据后,我打印这些项目在向量列表中,它们是诸如-15555232375694920 之类的值。我以前的好110123150哪去了??

cv::Mat grayscaleFrame;
cv::Mat image;
image = cv::imread(fullPath);

        cvtColor(image, grayscaleFrame, CV_BGR2GRAY);
        equalizeHist(grayscaleFrame, grayscaleFrame);
        cout << grayscaleFrame << endl;

        vector<int> **vectorList = new vector<int>*[grayscaleFrame.rows];

        for(size_t i=0; i<grayscaleFrame.rows;i++)
        {
            int *p = grayscaleFrame.ptr<int>(i); // pointer to row 0
            std::vector<int> row(p, p+grayscaleFrame.cols); 
            vectorList[i]=&row;

            for(int a =0; a<vectorList[i]->size();a++)
            {
                cout << vectorList[i]->at(a) << endl;
            }

        }

如果我的错误是使用&amp;row,那么我如何在不寻址地址的情况下完成此操作,因为当我删除&amp; 时出现错误:“没有合适的转换函数来自...。”

【问题讨论】:

    标签: opencv vector matrix grayscale


    【解决方案1】:

    问题在于 int 类型的向量元素,它们应该是无符号字符。

    但是当你打印它时使用 cout

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 2021-04-05
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      相关资源
      最近更新 更多