这个程序里面需要注意IlpImage的几个细节概念,imageData,width以及widthStep!
opencv里分配的内存按4个字节对齐,width表示图像的每行像素数,widthStep表示存储一行像素需要的字节数,是4的整数倍,不一定等于width;
当width为偶数时,widthStep与width*nChannels相等;
但是当width为奇数是,width就会自动填充一个像素的长度;
char* imageData指针指向图像数组的首地址,imageData是一个一维数组
图像img第y行的首地址为:img->imageData+y*img->widthStep;
将三幅图像显示到一个图像中:
#include<opencv2\opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
CvCapture* capture = cvCreateFileCapture("E:\\我的文件夹\\梦江南.avi");
IplImage* frame;
IplImage* gray_img;
IplImage* canny_img;
IplImage* new_img;
//cvNamedWindow("show_video");
//cvNamedWindow("gray_image");
//cvNamedWindow("canny_detect");
cvNamedWindow("all", 0);
while (1)
{
frame = cvQueryFrame(capture