怎么读取视频帧中的像素RGB亮度值,并改变亮度值
如何读取视频帧中的像素RGB亮度值,并改变亮度值
1.先得获得第一个像素的地址,用什么指令获得呢?
2.颜色值是用getbvalue吗?
3.颜色值获得后,如何改变呢?
请大家帮帮忙哈~
------解决方案--------------------
你的视频是怎样加载的?
如果用opencv,就很简单。
1.先得获得第一个像素的地址,用什么指令获得呢?
2.颜色值是用getbvalue吗?
3.颜色值获得后,如何改变呢?
请大家帮帮忙哈~
------解决方案--------------------
你的视频是怎样加载的?
如果用opencv,就很简单。
- C/C++ code
VideoCapture capture ; capture.open("F:\\program\\高标混\\白天\\002.avi"); if (!capture.isOpened()) { printf("capture device failed to open!"); return 1; } Mat frame ; while(true) { //get frame capture >> frame1; if (frame1.empty() ) { printf("Complete"); return 0; } //Display imshow("TLD", frame); //第一个像素地址 char * LPC = frame.data; }
------解决方案--------------------
1.先得获得第一个像素的地址,用什么指令获得呢?
2.颜色值是用getbvalue吗?
3.颜色值获得后,如何改变呢?
1.获取视频的一帧得到图片,然后图片(假设为image)里面有一个属性指示图像数据存储首地址(假设为imagedata)
2. 大致应该是用下面的方式来访问
value=image->imagedata[行*每行长度+列+通道号];(图像排列是RGB,RGB……格式)
或者value=image->imagedata[行*每行长度+列+通道号*行*每行长度];(图像排列是通道面)
image->imagedata前面可能要加(uchar)或者其他强制类型转换,才能正确获得值。
3.上面反过来,没有强制转换符号而已。
一般流程大概是这样。具体不清楚。