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,你看我是哪里出错了呢??
展开
 我来答
rickyskyxie
2013-03-06 · TA获得超过337个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:416万
展开全部
可能是cvCvtColor输入输出可是不一致导致的
你不要定义img1的格式试试,就是注释掉
IplImage* img1 = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);这一行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94085590c
2013-03-21 · 超过14用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:27.8万
展开全部
cvCvtColor函数要求原始图像和目标图像的通道数一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式