gpt4 book ai didi

opencv - cv CvtColor 失败

转载 作者:行者123 更新时间:2023-12-02 17:54:03 25 4
gpt4 key购买 nike

我尝试根据本网站上的内容运行以下程序
http://www.lirtex.com/robotics/fast-object-tracking-robot-computer-vision/

初始化参数

CvCapture *capture = cvCaptureFromCAM(0);

int width = ( int )cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH );
int height = ( int )cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT );

IplImage *frame;

CvSize size = cvSize(640,480);
cvNamedWindow( "Camera", CV_WINDOW_NORMAL );
cvNamedWindow( "HSV", CV_WINDOW_NORMAL );
cvNamedWindow( "EdgeDetection", CV_WINDOW_NORMAL );

cvResizeWindow("Camera",640,480);
cvResizeWindow("HSV",640,480);
cvResizeWindow("EdgeDetection",640,480);



IplImage * hsv_frame = cvCreateImage(size, IPL_DEPTH_8U, 3);
IplImage* thresholded = cvCreateImage(size, IPL_DEPTH_8U, 1);

当我像这样调用函数 cvCvtColor 时:
cvCvtColor(frame, frame  , CV_BGR2HSV);

第二个参数等于第一个它的工作

但是当我像这样调用函数时
cvCvtColor(frame, hsv_frame  , CV_BGR2HSV);

它失败并引发异常

有谁知道为什么会这样?

最佳答案

Array 帧是捕获图像的大小,而 *hsv_frame* 已被硬编码为 640x480。颜色空间转换操作(cvCvtColor)要求源和目标的大小相同,因此异常(exception)。

解决方案:

一种。通过设置使用与输入相同的大小
CvSize size = cvSize(frame->width, frame->height);
-或者-

湾。如果您希望最终的 o/p 为 640x480,请使用以下命令将输入​​调整为所需大小:cvResize
最后一点:与 C 接口(interface)相比,C++ 接口(interface)更直观、更稳定,并且增加了一些特性。我建议转移到 OpenCV 的 C++ 接口(interface)

关于opencv - cv CvtColor 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11479112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com