gpt4 book ai didi

c++ - OpenCV RGB 到灰色

转载 作者:太空宇宙 更新时间:2023-11-03 22:06:48 25 4
gpt4 key购买 nike

我正在做一个视频监控的项目。
我看不到从 RGB 到灰色的转换;我得到一个灰色的黑色窗口。
你能帮我解决这个问题吗? (附代码)
另外,我怎样才能得到当前帧和上一帧之间的差异?
多谢。宜兰

#include "stdafx.h"
#include <stdio.h> // For printf
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

int main()
{


int key = 0;



CvCapture* capture = cvCaptureFromAVI( "macroblock.mpg" );
IplImage* frame = cvQueryFrame( capture );
IplImage* gray = cvCreateImage(cvGetSize(frame),IPL_DEPTH_8U,1);
cvCvtColor(frame, gray, CV_RGB2GRAY);

if ( !capture )

{
fprintf( stderr, "Cannot open AVI!\n" );
return 1;
}
int fps = ( int )cvGetCaptureProperty( capture, CV_CAP_PROP_FPS );

cvNamedWindow( "video", CV_WINDOW_AUTOSIZE );
cvNamedWindow( "grayvideo", CV_WINDOW_AUTOSIZE );

while( key != 'x' )
{
frame = cvQueryFrame( capture );




if(key==27 )break;
cvShowImage( "video",frame );
cvShowImage( "grayvideo",gray );


key = cvWaitKey( 1000 / fps );
}
cvDestroyWindow( "video" );
cvReleaseCapture( &capture );

return 0;
}

最佳答案

您需要将每一帧从彩色转换为灰度。如果您在开始时执行一次,它不会自动转换。所以你需要添加

cvCvtColor(frame, gray, CV_BGR2GRAY);

在调用 cvQueryFrame 后进入 while 循环。

关于c++ - OpenCV RGB 到灰色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9974239/

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