OpenCV灰度图像到矢量

时间:2014-04-09 19:39:30

标签: opencv vector matrix grayscale

我想将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;
            }

        }

如果我的错误是使用&row,那么如何在不解决地址的情况下完成此操作,因为当我删除&时,我收到错误:&#34;没有合适的转换函数。 ...&#34;

1 个答案:

答案 0 :(得分:1)

问题在于int类型的向量元素,它们应该是unsigned char。

但是当你打印它时使用cout&lt;&lt; (int)any_value&lt;&lt; ENDL;