IplImage结构体
来源:互联网 发布:标准件网络销售 编辑:程序博客网 时间:2024/05/16 10:15
1、origin:图像原点的定义。=0,则图片的左上角是原点;=1,则左下角是原点。 IplImage* img=cvLoadImage("图片路径"); img->origin=0,1;
2、depth:图像颜色深度,有6种取值
3、widthStep:一行的字节数
6、nChannels:图像的通道数,(B,G,R),一个像素点对应3个值(B,G,R);
二、访问图像像素点:
imageData是图像的起始地址: IplImage* img; usigned char* prow=(usigned char*) (img->imageData+y*img->widthStep); //prow指针指向图像img第y行的起始地址
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
int main(int argc, char* argv[])
{
IplImage *img=cvLoadImage("E:\\大四上\\openCV\\水果\\1.jpg",2|4);
IplImage *b_img=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); //b通道图像
IplImage *g_img=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);//g通道图像
IplImage *r_img=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);//r通道图像*/
int y,x;
for(y=0;y<img->height;y++)
{
unsigned char* prow=(unsigned char*)(img->imageData+y*img->widthStep);
unsigned char* b_prow=(unsigned char*)(b_img->imageData+y*b_img->widthStep);
unsigned char* g_prow=(unsigned char*)(g_img->imageData+y*g_img->widthStep);
unsigned char* r_prow=(unsigned char*)(r_img->imageData+y*r_img->widthStep);
for(x=0;x<img->width;x++)
{
b_prow[x]=prow[x*3+0];
g_prow[x]=prow[x*3+1];
r_prow[x]=prow[x*3+2];
}
}
cvNamedWindow("img");
cvNamedWindow("b_img");
cvNamedWindow("g_img");
cvNamedWindow("r_img");
cvShowImage("img",img);
cvShowImage("b_img",b_img);
cvShowImage("g_img",g_img);
cvShowImage("r_img",r_img);
cvWaitKey(0);
return 0;
}
结果截图:
三、ROI:在一幅图像中,感兴趣的区域(一个矩形区域)
对图像设置ROI区域的方法:cvSetImageROI(img,rect); //img是图像,rect是矩形区域
取消ROT区域:cvResetImageROI(img);
把img2添加到img1这幅图像上:cvCopy(img2,img1);在用的时候,必须保证两幅图像的格式相同,并且同为彩色图像或灰度图像
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
int main(int argc, char* argv[])
{
IplImage* img1=cvLoadImage("E:\\大四上\\openCV\\水果\\苹果.png");
IplImage* img2=cvLoadImage("E:\\大四上\\openCV\\水果\\梨.png");
CvRect rect=cvRect( 40, 25, img2->width, img2->height); //矩形
cvSetImageROI(img1,rect); //对图像设置ROI区域
cvNamedWindow("img1");
cvCopy(img2,img1); //把img2复制到img1上面
cvResetImageROI(img1); //取消ROI区域
cvShowImage("img1",img1);
cvWaitKey(0);
return 0;
}
- IplImage结构体
- IplImage结构体
- openCV IplImage结构体
- IplImage结构体介绍
- 结构体IplImage
- IplImage结构体
- OpenCV IplImage结构体
- IplImage结构体
- IplImage结构体中:
- IplImage结构体
- IplImage结构体数据解析
- IplImage 结构体的解释
- IplImage结构
- IplImage结构
- IplImage结构
- IplImage 结构
- IplImage结构
- IplImage结构
- 矩阵与维度通道的介绍
- CvMat结构
- 通过指针访问矩阵数据
- svn服务器ubuntu
- 理解DOMString、Document、FormData、Blob、File、ArrayBuffer数据类型
- IplImage结构体
- 图像的灰度直方图
- easyui下的datagrid后台数据加载和分页
- RGB与HSV颜色空间
- HSV与RGB颜色空间的转换
- 腐蚀图像
- Arduino101/Genuino101的安装入门
- Weex 环境安装小结 2
- STM3210x建工程库函数版本