相关疑难解决方法(0)

30
推荐指数
3
解决办法
13万
查看次数

如何在openCV中获得像素矩阵和重塑矩阵

我正在使用openCV在C++中实现一个图像处理算法,其中第一步要求将图像转换为矩阵.我知道当图像加载到openCV中时,它已经存储为矩阵.我使用的图像大小为80 x 60,所以我假设它存储的矩阵大小为80 x 60.但是,我想首先能够看到这个矩阵然后能够重塑它变成了一个相同的矩阵.像素,但作为一个长列.即80×60矩阵现在将成为4800×1矩阵.我曾尝试过研究教科书和在线但无济于事.到目前为止这是我的代码.在任何情况下,它都无法正常工作,因为我无法将'IplImage*'转换为'CvMat*但是我应该如何在创建后将像素值分配给矩阵?如果有人可以帮我解决这个问题,我将不胜感激.

#include "cv.h"
#include "highgui.h"
#include "iostream"

using namespace std;
int main( int argc, char* argv ) {
IplImage* img0 = NULL;
CvMat* img0_mat = NULL ;
img0 = cvLoadImage("C:\\new\\walk mii.jpg");
if (!img0){
    return -1;}
img0_mat = cvCreateMat(80, 60, 1);
img0_mat = img0;
cout <<" matrix " << img0 << endl;

cvWaitKey(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing matrix

5
推荐指数
1
解决办法
7566
查看次数

OpenCV 2.1:ostream operator << for cv :: Mat?

这个问题之后,我试图打印出cv::Mat标准输出的内容:

#include <iostream>
#include <opencv/cv.h>
#include <opencv/cv.hpp>
#include <opencv/cxcore.h>
#include <opencv/cxcore.hpp>

int main() {

  cv::Mat m = cv::Mat::ones(10, 10, CV_32S);
  std::cout << m << "\n";

}
Run Code Online (Sandbox Code Playgroud)

这导致错误

error: no match for ‘operator<<’ in ‘std::cout << m’
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu 11.10上使用gcc 4.6.1,并按照这些说明安装了opencv,不包括示例.我的问题是,2.1中的操作员是否可用,如果可以,我该如何获得?

c++ opencv

4
推荐指数
1
解决办法
2194
查看次数

标签 统计

c++ ×3

opencv ×3

matrix ×2

image-processing ×1