opencv图像处理基本操作(转http://imagedsp.blog.sohu.com/96087104.html)(

1. 矩阵数据类型
通用矩阵数据类型:
      CV_<bit_depth>(S|U|F)C<number_of_channels>
其中,S表示带符号整数;
      U表示无符号整数;
      F表示浮点数;
例如:CV_8UC1 表示8位无符号单通道矩阵;
   CV_32FC2 表示32位浮点数双通道矩阵;

2. 图像数据类型
通用图像数据类型为:
   IPL_DEPTH_<bit_depth>(S|U|F)
如:IPL_DEPTH_8U 表示8位无符号整数图像;
  IPL_DEPTH_32F 表示32位浮点数图像;

3. 分配和释放图像
3.1 分配一幅图像
  IpIImage * cvCreateImage(cvSize size, int depth, int channels);
其中size可以用cvSize(width, height)得到。
depth为像素的单位,包括:
IPL_DEPTH_8U
IPL_DEPTH_8S
IPL_DEPTH_16U
IPL_DEPTH_16S
IPL_DEPTH_32S
IPL_DEPTH_32F
IPL_DEPTH_64F
channels为每个像素的通道数,可以是1,2,3或4。通道是交叉排列的,一幅彩色
图像的通常的排列顺序是:
b0 g0 r0 b1 g1 r1 ...

例如:分配一个单通道单字节图像的语句是:
IpIImage* img1 = cvCreateImage(cvSize(640, 480), IPL_DEPTH_8U, 1);

分配一个三通道浮点数图像语句是:
IpIImage* img2 = cvCreateImage(cvSize(640, 480), IPL_DEPTH_32F, 3);

3.2 释放图像
void cvReleaseImage(IpIImage **);

3.3 复制一幅图像
IpIImage* cvCloneImage(IpIImage *);
如:
IpIImage* img1 = cvCreateImage(cvSize(640, 480), IPL_DEPTH_8U, 1);
IpIImage* img2;
img2 = cvCloneImage(img1);

3.4 设置或得到感兴趣区域ROI
void cvSetImageROI(IpIImage* image, cvRect rect);
void cvResetImageROI(IpIImage* image);
vRect cvGetImageROI(const IpIImage* image);

4. 图像的读写
4.1 从文件中获取图像
从文件中读取图像可以采用下面的语句:
IpIImage* img = 0;
img = cvLoadImage(filename);
if (!img)
  printf("Could not load image file: %s\n", filename);
 
默认为读取三通道图像。如果改变设置则采用如下的方式:
img = cvLoadImage(filename, flag);
当flag > 0时,表示载入图像为3通道彩色图像;
当flag = 0时,表示载入图像为单通道灰色图像;
当flag < 0时,表示载入图像由文件中的图像通道数决定。


5. 图像转换
5.1 将灰度图像转换为彩色图像

cvConvertImage(src, dst, flags = 0);
其中,src表示浮点(单字节)灰度(彩色)图像;
      dst表示单字节灰度(彩色)图像;
      flags表示
              +--- CV_CVTIMG_FLIP,    垂直翻转
      flags = |
              +--- CV_CVTIMG_SWAP_RB, 交换R和B通道
             
5.2 将彩色图像转换为灰度图像
cvCvtColor(cimg, gimg, CV_RGB2GRAY);

5.3 彩色空间的转换
cvCvtColor(src, dst, code);
其中code为:CV_<X>2<Y>,而<X>,<Y> = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS。

6. 绘制命令
绘图语句为:
cvRectangle, cvCircle, cvLine, cvPolyLine, cvFillPoly, cvInitFont, cvPutText。

posted on 2009-07-05 17:28 碧云天 阅读(2099) 评论(0)  编辑 收藏 引用 所属分类: 数字图像处理


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

Emgu CV ——c#版的opencv

Help

搜索

最新评论

阅读排行榜

评论排行榜