opencv 迭代器算法_第1页
opencv 迭代器算法_第2页
opencv 迭代器算法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、采样、差值和几何变换InitLinelterator初始化线段迭代器int cvInitLineIterator( const CvArr* image, CvPoint ptl, CvPoint pt2, CvLinelterator* line_iterator, int connectivity=8 );image带采线段的输入图像.ptl线段起始点pt2线段结束点line_iterator指向线段迭代器状态结构的指针connectivity被扫描线段的连通数,4或8.left_to_right:标志值,指出扫描直线是从pt1和pt2外面最左边的点扫描到最右边 的点(left_to_ri

2、ght乏0),还是按照指定的顺序,从pt1到pt2(left_to_right=0)。函数 cvInitLineIterator初始化线段迭代器,并返回两点之间的象素点数目。两个点必须在图像内。当迭代器初始化后,连接两点的光栅线上所有点,都可以连续通 过调用CV_NEXT_LINE_POINT来得到。线段上的点是使用4 一连通或8一连通 利用Bresenham算法逐点计算的。例子:使用线段迭代器计算彩色线上象素值的和CvScalar sum_line_pixels( IplImage* image, CvPoint pt1, CvPoint pt2 )CvLineIterator iterat

3、or;int blue_sum = 0, green_sum = 0, red_sum = 0;int count = cvInitLineIterator( image, pt1, pt2, &iterator, 8 );for( int i = 0; i imageData);y = offset/image-widthStep;x = (offset y*image-widthStep)/(3*sizeof(uchar) /* size of pixel */);printf(%d,%d)n, x, y );return cvScalar( blue_sum, green_sum, re

4、d_sum );取到像素值后,需返回此时的点的坐标。像素值已通过iterator.prr取得offset每一个轮廓点的偏移量,当轮廓是从图像ROI中提取出来的时候,使用 偏移量有用,因为可以从整个图像上下文来对轮廓做分析。cvSampleLine :对直线采样;SampleLine将图像上某一光栅线上的像素数据读入缓冲区int cvSampleLine( const CvArr* image, CvPoint ptl, CvPoint pt2, void* buffer, int connectivity=8 );image输入图像ptl光栅线段的起点pt2光栅线段的终点buffer存储线段点

5、的缓存区,必须有足够大小来存储点max( Ipt2.x-pt1.xl+1, Ipt2.y-pt1.yl+1 ) : 8一 连通情况下,或者 Ipt2.x-pt1.xl+lpt2.y-pt1.yl+1 : 4一连通 情况下.connectivity线段的连通方式,4 or 8.函数cvSampleLine实现了线段迭代器的一个特殊应用。它读取由pt1和pt2 两点确定的线段上的所有图像点,包括终点,并存储到缓存中。IplImage* img-widthStep表示存储一行像素所需的字节数,widthStep必须是4 的倍数。对于,一个8u图像每个像素正好一个字节,如果width为3,那一行只需3

6、个 字节,这样的情况会自动加一个字节补齐。这个图像的一行仍然需要4个字节, 只使用前3个,最后一个空在那儿不用。例如:4*3的8u图像的imageData数据大小为4*4=16字节;如果是32F的图像,一个像素要4个字节,那么widthStep=width*4; 在OpenCV里边,widthStep必须是4的倍数,从而实现字节对齐,有利于提高 运算速度。如果8U单通道图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像 的一行需要4个字节,只使用前3个,最后一个空着。也就是一个宽3高3的图 像的imageData数据大小为4*3=12字节。2.使用迭代器遍历图像cv:Mat同样有标准模板库(STL),可以使用迭代器访问数据。/ get iteratorscv:Mat_:iterator it= image.begin();cv:Mat_:iterator itend= image.end();for ( ; it!= itend; +it) 处理每个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论