本文记录使用OpenCv操作图像上每一个像素点,用摄像头采集(拍照)或者直接加载一副图像后,树莓派系统会在内存中为这幅图像分配内存空间,通过定义的IplImage结构体指针指向这块内存空间就方便可以操控它。因为IplImage结构体中定义了很多内部变量,代表图像的属性,具体如下:
1.IplImage结构具体定义如下:
typedef struct _IplImage
{
int nSize; /* IplImage大小 */
int ID; /* 版本 (=0)*/
int nChannels; /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */
int alphaChannel; /* 被OpenCV忽略 */
int depth; /* 像素的位深度,主要有以下支持格式: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U,IPL_DEPTH_16S, IPL_DEPTH_32S,IPL_DEPTH_32F 和IPL_DEPTH_64F */

本文详细介绍了如何使用OpenCV在树莓派系统中操作图像的每一个像素点。通过IplImage结构体,可以访问内存中图像的数据。CvScalar结构体用于存储像素值,对于1通道图像,pt.val[0]存储数据;3通道图像则分别存储于pt.val[0]、pt.val[1]、pt.val[2]。注意,OpenCV中内存中彩色图像的顺序为BGR。cvGet2D和cvSet2D函数分别用于获取和设置像素点的值。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



