opencv将图像转换成二维数组再将数组数据传给新图像

来源:互联网 发布:上海 软件设计师报名 编辑:程序博客网 时间:2024/05/16 04:53
#include<iostream>#include<fstream>#include "cv.h"#include "highgui.h"using namespace std;int main(int argc, char** argv){cout << "进入系统----------->" << endl;//读入图片,将矩阵拉成一行IplImage* img = cvLoadImage("F:\\temp\\00.jpg", 0);cvNamedWindow("原图", CV_WINDOW_AUTOSIZE);cvShowImage("原图", img);CvSize imgsize;imgsize.height = 288;imgsize.width = 352;//格式转换cv::Mat matimage = cv::cvarrToMat(img);unsigned char imgmat[288][352];for (size_t nrow = 0; nrow < matimage.rows; nrow++){for (size_t ncol = 0; ncol < matimage.cols; ncol++){imgmat[nrow][ncol] = matimage.at<unsigned char>(nrow, ncol);}}//定义新空图像IplImage *src = cvCreateImage(imgsize, IPL_DEPTH_8U, 1);//将数组数据传给图像src->imageData = (char*)imgmat;cvNamedWindow("生成", CV_WINDOW_AUTOSIZE);cvShowImage("生成", src);cvNamedWindow("window", CV_WINDOW_AUTOSIZE);cvShowImage("window", img);cvWaitKey(0);cvReleaseImage(&img);cvDestroyWindow("window");}




阅读全文
0 0