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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
OpenCV中读取RGB格式图像转成HSV格式图像显示
[cpp] view plaincopy #include    #include "highgui.h"   #include "cv.h"   #include "time.h"   #include           int main()   {       IplImage* image = cvLoadImage("test.png");
使用Opencv将RGB颜色空间转换到HSV颜色空间/灰度图
一. 使用cvCvtColor函数将RGB颜色空间转换到HSV颜色空间所需函数:1.cvCvtColor函数功能:颜色空间转换函数原型:void cvCvtColor( const CvArr* src, CvArr* dst, int code );参数介绍:const CvArr* src:    输入图像CvArr* dst: 输出图像(输出图像必须和输入图像的size,颜色位深度,...
opencv,图像处理,rgb转换为hsv空间
图像RGB空间转换为HSV空间。 H参数表示色彩信息,即所处的光谱颜色的位置。该参数用一角度量来表示,红、绿、蓝分别相隔120度。互补色分别相差180度。 纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。S=0时,只有灰度。 V表示色彩的明亮程度,范围从0到1。有一点要注意:它和光强度之间并没有直接的联系。 1: max=max(R,G,B) 2: min=...
【OpenCV】车牌定位RGB转HSV图像并打印输出各像素点的值
#include "stdafx.h" #include #include #include int main() { int R=0; int G=0; int B=0;  IplImage *srcImage=cvLoadImage("24.bmp",1);  IplImage* dstImage=cvCloneImage(srcImage);  IplImage*
python3-opencv库(3)--图片颜色空间转换,利用HSV进行物体跟踪,图像通道分离与合并
版权声明:转载请注明原作者及出处from cv2 import cv2 #或者import cv2 import numpy as np &quot;&quot;&quot;H(hue)色调 0~180;S(saturation)饱和度 0~255;V(value) 0~255 具体参见HSV颜色空间的百度百科&quot;&quot;&quot; def extract_object_demo(): &quot;&quot;&quot;通过颜色过滤的方法来跟踪捕获视屏中的物体...
opencv 将BGR转为HSV
char* srcimg = "fj.jpg"; char* smoothtitle = "SmmonthImg"; //char srcname[]="group_uncheck"; IplImage* pSrcImg = cvLoadImage( srcimg ); if( pSrcImg == NULL ) return; IplImage* pDestImg = cv
将图像分离成HSV空间
将图像分离成HSV空间,并显示HSV空间的每个通道。 Rect select; vector mv; capture >> frame; cvtColor(frame, gray, CV_BGR2GRAY); cvtColor(frame, gray, COLOR_BGR2GRAY);//使用灰度图进行检测 /***
将图片转换到HSV空间对图片中特定颜色进行识别
将图片转换到HSV空间对图片中特定颜色进行识别本篇博客介绍将图片从RGB颜色空间转换到HSV颜色空间,从而实现对特定颜色的对象的识别。下面是代码(实现对浅蓝色物体的识别):import cv2 import numpy as np rgb_img = cv2.imread('predict1.png') HSV = cv2.cvtColor(rgb_img, cv2.COLOR_BGR2HSV) ...
基于OpenCV的RGB和HSV色彩空间相互转换C++程序
之所以说基于opencv,由于转换程序用到了一些OpenCV函数(imread())及数据类型(uchar)。        OpenCV全称:Open Source Computer Vision Library,开源、免费,很好很强大。 帮助文档:http://docs.opencv.org/index.html 入门教程:http://www.opencv.org.cn/ope
opencv实现RGB转换到HSV,并实现颜色过滤
因为本人也是刚开始接触opencv,所以如果有不足,还请指正。因为在做双目视觉,需要找到目标物,所以就选择了利用颜色来判断,也找了很多的资料,但还是疑惑很多,不管怎么说,最后还是把效果做出来了,所以写一个经验,希望能帮到别人。至于为什么使用HSV空间而不是RGB,是因为RGB不容易判断颜色,而HSV非常容易判断。先直接上程序吧#include &amp;lt;iostream&amp;gt;#include &quot;o...