图像局部与分割(一)
来源:互联网 发布:淘宝网买东西流程 编辑:程序博客网 时间:2024/06/02 05:32
OpenCV中的采样函数cvInitLineIterator()和CV_NEXT_LINE_POINT(),可以很容易对任意直线上的像素进行采样。
CVAPI(int) cvInitLineIterator(constCvArr* image,CvPoint pt1,CvPoint pt2,
CvLineIterator* line_iterator,
int connectivityCV_DEFAULT(8),
int left_to_rightCV_DEFAULT(0));
输入参数image可以是任意数据类型和任何通道数
点pt1和pt2是线段的两个端点。
迭代器line_iterator说明直线上两个像素之间的移动步长。
如果图像是多通道的,每次调用CV_NEXT_LINE_POINT()函数都使line_iterator指向下一个像素。
每个通道的像素值可同时用line_iterator.ptr[0],line_iterator.ptr[1],line_iterator.ptr[2]依次得到。
下面看一个具体应用:
从一个视频文件中读取所有像素的GRB值,收集这些数值并将其分成三个文件。
#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/highgui.hpp>using namespace std;using namespace cv;#define CVX_RED CV_RGB(0xff, 0x00, 0x00)#define CVX_GREEN CV_RGB(0x00, 0xff, 0x00)#define CVX_BLUE CV_RGB(0x00, 0x00, 0xff)int main(){ /*1、载入一个视频*/ const char videoname[] = "/Users/linwang/LinMovie/Wolf.mp4"; //通过参数设置要读取的文件,返回一个指向capture的结构指针 CvCapture * capture = cvCreateFileCapture(videoname); /*2、设置相关变量*/ int max_buffer = 0; //返回直线上迭代的点的个数 IplImage * rawIamge; CvLineIterator iterator; //迭代器 /*3、准备写入文件*/ FILE * ftprb = fopen("blines.csv","w"); FILE * ftprg = fopen("glines.csv","w"); FILE * ftprr = fopen("rlines.csv","w"); CvPoint pt1 , pt2; for(;;) { //从摄像头或视频抓去帧 if(!cvGrabFrame(capture)) { break; } //取回由函数抓取的图像 rawIamge = cvRetrieveFrame(capture); //返回线上迭代的点的个数 max_buffer = cvInitLineIterator(rawIamge, pt1, pt2, &iterator); for(int j = 0;j<max_buffer;j++) { fprintf(ftprb, "%d,",iterator.ptr[0]); fprintf(ftprg, "%d,",iterator.ptr[1]); fprintf(ftprr, "%d,",iterator.ptr[2]); iterator.ptr[2] = 255; //red做一个标记 CV_NEXT_LINE_POINT(iterator); //迭代到写一个像素 } fprintf(ftprb, "/n"); fprintf(ftprg, "/n"); fprintf(ftprr, "/n"); } fclose(ftprb); fclose(ftprg); fclose(ftprr); cvReleaseCapture(&capture);}
阅读全文
0 0
- 图像局部与分割(一)
- 图像局部与部分分割--opencv
- opencv第九章-图像局部与分割
- opencv 的图像局部与部分分割
- 第九章 – 图像局部与分割 – 视频中是直线像素采样(cvInitLineIterator )
- 第九章 – 图像局部与分割 – 视频中是直线像素采样(cvInitLineIterator )
- 图像局部与分割 – 视频中是直线像素采样(cvInitLineIterator )
- opencv学习笔记7:图像局部与分割
- opencv第九章 《图像局部与分割》知识点整理、总结
- 视频图像分割研究与实现(一):入门指导
- 图像分割之(一)
- 图像分割 (一)概述
- 图像分割(一)--综述
- 第九章 – 图像局部与分割 – 背景场景和分割前景目标的方法(平均背景法)(例程待实现)
- 图像局部特征(一)--概述
- 图像分割之(一)概述
- 图像分割之(一)概述
- 图像分割之(一)概述
- Windows下redis及php-redis扩展的安装
- 具有带外管理功能的8端口切换器KS-2008UI
- 如果基类的析构函数不是virtual的,那么在派生类对象过期时,先调用自己的析构函数,接着会调用基类的析构函数吗?
- java运算符
- SQL分组求最大值
- 图像局部与分割(一)
- 读《知心书.第二辑:疯子的自由》
- 干货 | NIPS 2017:用于序列生成的推敲网络
- 算法期中 最小和
- idea创建项目
- Android keystore的作用以及如何生成
- How to train your Deep Neural Network
- Ajax跨域(jsonp) 调用JAVA后台
- 语音训练营