小ks强 2014-03-24 11:01 采纳率: 0%
浏览 2406

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条回答

  • shiter 人工智能领域优质创作者 2015-01-19 08: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;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?