2 a6670369 a6670369 于 2014.03.24 19:01 提问

opencv将图片转为HSV时总是报错

if(m_pVideoInfo->m_pCapture){
IplImage* frame,*src_image=NULL;
frame = cvQueryFrame(m_pVideoInfo->m_pCapture);
if(frame)
{
cvCopy(frame,m_pVideoInfo->m_pFrameImage);
int i, bin_w, c;
if(!m_pVideoInfo->m_pFrameImage)
{
m_pVideoInfo->m_pFrameImage = cvCreateImage( cvGetSize(frame), 8, 3 );//
m_pVideoInfo->m_pFrameImage->origin = frame->origin;
hsv = cvCreateImage( cvGetSize(frame), 8, 3 );
hue = cvCreateImage( cvGetSize(frame), 8, 1 );
mask = cvCreateImage( cvGetSize(frame), 8, 1 );//分配掩膜图像空间
backproject = cvCreateImage( cvGetSize(frame), 8, 1 );//分配反向投影图空间,大小一样,单通道
hist = cvCreateHist( 1, &hdims, CV_HIST_ARRAY, &hranges, 1 ); //分配建立直方图空间

      histimg = cvCreateImage( cvSize(320,200), 8, 3 );//分配用于画直方图的空间
     cvZero( histimg );//背景为黑色
    }
    cvCopy( frame, m_pVideoInfo->m_pFrameImage, 0 );
    cvCvtColor( m_pVideoInfo->m_pFrameImage, hsv, CV_BGR2HSV ); // 把图像从RGB表色系转为HSV表色系

这是MFC程序中的一部分,capture指针打开了一个视频文件

但是每次打开视频的时候都会报错,只要把最后一段代码注释了就没问题了

2个回答

wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.19 16:21
 #include <math.h>
#include "highgui.h"
#include "cv.h"
#include "time.h"
#include <iostream>


int main()
{
    IplImage* image = cvLoadImage("test.png");  
    IplImage* hsv = cvCreateImage( cvGetSize(image), 8, 3 );
    cvCvtColor(image,hsv,CV_BGR2HSV);

    cvNamedWindow("saturate_SV",CV_WINDOW_AUTOSIZE);  
    cvShowImage("saturate_SV",hsv);  
    cvWaitKey(0);  
    cvReleaseImage(&hsv);  
    cvDestroyWindow("saturate_SV");  
    return 0;
}
wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.19 16:22
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!