opencv,cvCvtColor函数。编译通过,运行无法启动。 20
关于cvCvtColor这个函数的,代码如下#include<iostream>usingnamespacestd;#include<Windows.h>#include...
关于cvCvtColor这个函数的,代码如下
#include<iostream>
using namespace std;
#include <Windows.h>
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
CvCapture *capture=cvCreateFileCapture("D:\\output44.avi");//视频获取
cvNamedWindow("d",1);//创建窗口
IplImage *frame;//声明IplImage指针
while(1)
{
frame=cvQueryFrame(capture);//从摄像头或文件中抓起并返回一帧
if(!frame) break;
IplImage* color_dst = cvCreateImage(cvGetSize(frame),8,3 );//创建头并分配数据
IplImage* img1 = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
IplImage* SmoothImg = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
cvCvtColor(frame,img1,CV_BGR2GRAY);//颜色转换函数,得到灰度图
cvShowImage("d",frame);//显示图像
cvWaitKey(33);
}
cvReleaseImage(&frame);
cvReleaseCapture(&capture);
return 0;
}
如果我注释掉cvCvtColor(frame,img1,CV_BGR2GRAY);//颜色转换函数,得到灰度图,运行就可以。如果不注释就0xc000007b,应用程序无法启动。
我用的64win7,vs2010,opencv2.3.1,你看我是哪里出错了呢?? 展开
#include<iostream>
using namespace std;
#include <Windows.h>
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
CvCapture *capture=cvCreateFileCapture("D:\\output44.avi");//视频获取
cvNamedWindow("d",1);//创建窗口
IplImage *frame;//声明IplImage指针
while(1)
{
frame=cvQueryFrame(capture);//从摄像头或文件中抓起并返回一帧
if(!frame) break;
IplImage* color_dst = cvCreateImage(cvGetSize(frame),8,3 );//创建头并分配数据
IplImage* img1 = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
IplImage* SmoothImg = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
cvCvtColor(frame,img1,CV_BGR2GRAY);//颜色转换函数,得到灰度图
cvShowImage("d",frame);//显示图像
cvWaitKey(33);
}
cvReleaseImage(&frame);
cvReleaseCapture(&capture);
return 0;
}
如果我注释掉cvCvtColor(frame,img1,CV_BGR2GRAY);//颜色转换函数,得到灰度图,运行就可以。如果不注释就0xc000007b,应用程序无法启动。
我用的64win7,vs2010,opencv2.3.1,你看我是哪里出错了呢?? 展开
展开全部
可能是cvCvtColor输入输出可是不一致导致的
你不要定义img1的格式试试,就是注释掉
IplImage* img1 = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);这一行
你不要定义img1的格式试试,就是注释掉
IplImage* img1 = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);这一行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询