OpenCV中读取视频帧像素值的一般方法

OpenCV中读取视频帧像素值的一般方法可以分为以下几个步骤:

1、打开AVI格式的视频

CvCapture *capture=NULL;
	IplImage *img=NULL;

	capture = cvCaptureFromFile("E:\\Sequence_mask\\crossroad.avi");
	if(!capture)
	{
		cout<<endl<<"failed to open mask file"<<endl;
		return;
	}

2、从摄像头或者文件中顺序抓取并返回一帧

img=cvQueryFrame( capture );

3、读取当前帧像素值的基本方法

for(y = 0; y < height; y++)
{
	for(x=0;x < width; x++)
        {
		UInt pixelB=(UInt)((uchar*)(img->imageData+img->widthStep*y))[3*x];
		UInt pixelG=(UInt)((uchar*)(img->imageData+img->widthStep*y))[3*x+1];
		UInt pixelR=(UInt)((uchar*)(img->imageData+img->widthStep*y))[3*x+2];
        }
}

注意:读取R、G、B像素值分量的顺序。

时间: 2024-08-18 02:18:17

OpenCV中读取视频帧像素值的一般方法的相关文章

OpenCV中读取视频/camera代码

发现OpenCV中读取视频或者usb camera的方法如此简单,下面是opencv2.31中实现的读取摄像头的代码: int main() { //打开视频文件 //cv::VideoCapture capture("bike.avi"); //0 open default camera cv::VideoCapture capture(0); //检查视频是否打开 if(!capture.isOpened()) return 1; // 得到帧率 double rate= capt

OpenCV中获取图像某一像素值

This is a basic example for the OpenCV. First we must know the structure of IplImage: IPL image: IplImage |-- int nChannels; // Number of color channels (1,2,3,4) |-- int depth; // Pixel depth in bits: | // IPL_DEPTH_8U, IPL_DEPTH_8S, | // IPL_DEPTH_

mfc-关于MFC读取视频帧数问题

问题描述 关于MFC读取视频帧数问题 除了cvSetCaptureProperty(按照网上教程乱帧问题也一直没解决),或者for循环逐帧,还有其他办法吗? 解决方案 用directshow,不用OPENCV

c++-opencv 摄像头读取视频保存

问题描述 opencv 摄像头读取视频保存 namedWindow("E1",cv::WINDOW_AUTOSIZE); namedWindow("E2",cv::WINDOW_AUTOSIZE); VideoCapture capture(0); Size size((int)capture.get(CV_CAP_PROP_FRAME_WIDTH ),(int)capture.get(CV_CAP_PROP_FRAME_HEIGHT )); VideoWriter

c语言-C中读取文件的字节值 求指教

问题描述 C中读取文件的字节值 求指教 #include #include #include #include using namespace std; int main() { FILE *fp=fopen("/home/nagainpkm/pwdSoftKeyboard/softkbd_example.apk", "r+"); int ch; if ( fp == NULL) { perror("Open file softkbd_example.ap

php获取数组元素中头一个数组元素值的实现方法_php技巧

本文实例讲述了php获取数组元素中头一个数组元素值的实现方法.分享给大家供大家参考.具体如下: 在php的内置函数中,获取数组元素值的函数主要有 reset next current prev end 这几个函数. reset (PHP 3, PHP 4, PHP 5) 函数定义:mixed reset ( array &array ) 作用:该函数将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值,如果数组为空则返回 FALSE,代码如下: 复制代码 代码如下: $array=

Java从数据库中读取Blob对象图片并显示的方法_java

本文实例讲述了Java从数据库中读取Blob对象图片并显示的方法.分享给大家供大家参考.具体实现方法如下: 第一种方法: 大致方法就是,从数据库中读出Blob的流来,写到页面中去: 复制代码 代码如下: Connection conn = DBManager.getConnection();   String sql = "SELECT picture FROM teacher WHERE id=1";   PreparedStatement ps = null;   ResultSe

OpenCV中保存视频的一般方法

在OpenCV中,保存视频一般分为三步骤: 1.初始化工作 //初始化保存视频文件 CvVideoWriter* video=NULL; video=cvCreateVideoWriter("E:\\Sequence_mask\\out.avi",CV_FOURCC('X', 'V', 'I', 'D'), m_inputfps,cvSize(m_inputwidth,m_inputheight),0);//1代表彩色视频,0代表黑白视频,即mask if(video) cout<

在.NET中读取嵌入和使用资源文件的方法_C#教程

Dotnet中嵌入资源(位图.图标或光标等)有两种方式,一是直接把资源文件加入到项目,作为嵌入资源,在代码中通过Assembly的GetManifestResourceStream方法获取资源的Stream.另一种方法是在项目中加入. resx资源文件,在资源文件中添加资源,由ResourceManager类统一管理其中的资源. 下面分别详述这两种方法 一.使用GetManifestResourceStream读取嵌入资源 1.加入资源文件 直接把要嵌入到程序集的资源文件加入到项目中,可以加在项