OpenCV库的使用
来源:互联网 发布:php中介者模式 编辑:程序博客网 时间:2024/06/07 17:38
OpenCV中文网站
http://wiki.opencv.org.cn/
OpenCV的下载(请下载2.4以后的版本):
http://pan.baidu.com/s/1bnkYMjt
VS2010下,OpenCV的安装及使用:
OpenCV库的安装有两种方式,
1. 简单安装OpenCV到你指定的目录下即可,将其视为一个普通的库。
2. 安装完之后,用Cmake工具编译出自己的库。具体方法见
http://pan.baidu.com/s/1xJKUw
OpenCV的使用
使用OpenCV时,只需要将OpenCV的静态库目录,包含目录加到VS2010工程属性中“VC++目录”下的对应项中,并将OpenCV的动态库目录加到系统环境变量的path中。最后将你需要连接的库文件加到VS2010工程属性中“链接器”的“输入”项。以后你还会用到其他的库,其一般用法都是如此。更具体方法可参考
http://pan.baidu.com/s/1xJKUw
IpImage VS Mat
如果你在网上搜索OpenCV的图像处理,会出现基于IpImage 和 Mat两种不用数据结构的处理方法。那么它们有什么区别呢?
IplImage 是OpenCV最早的处理图像的数据结构,但这种结构的使用更像C语言习惯,Mat是OpenCV2.0以后版本出现的更符合面向对象编程习惯的数据结构,而这正是OpenCV更新的方向。
OpenCV为这两种数据结构提供了大量的图像IO,图像处理接口,你可以随便选用。推荐你用Mat数据结构,因为这符合我们一直追求的面向对象编程习惯。我们的示例程序也是基于Mat数据结构的。
这里提供了一个OpenCV在QT下显示的程序(VS2010版本)。
接口函数为paintEvent
Mat 版本,注意使用命名空间 using namespace cv;
void ImageWidget::paintEvent(QPaintEvent*paintevent)
{
QPainterpainter;
painter.begin(this);
//Draw background
painter.setBrush(Qt::lightGray);
QRectback_rect(0, 0, width(), height());
painter.drawRect(back_rect);
//Draw image
QImage image_show = QImage((unsigned char *)(image_mat_.data), image_mat_.cols, image_mat_.rows,image_mat_.step, QImage::Format_RGB888 );
QRectrect = QRect(0, 0, image_show.width(), image_show.height());
painter.drawImage(rect,image_show);
painter.end();
}
Opencv中获取图像的长和宽:
Mat版本
详见ImageWidget::Mirror
Mat image;
Mat.cols, mat.rows即为图像的宽和高
获取和改变像素的颜色
Vec3i bgr;
bgr = images.at<Vec3b>(nrow, ncol); //getthe (nrow,ncol) pix value
images.at<Vec3b>(nrow, ncol) = bgr;//set the (nrow,ncol) pix value
在ImageWidget::Invert
提供了一种用迭代器访问Mat数据结构的方法。
- OpenCV库的使用
- OpenCV staticlib--OpenCV静态库的使用
- openCV库cv2的使用
- 编译使用opencv库的android程序
- opencv库的基本使用(python)
- [OpenCV] cvGetSubRect的使用
- OPENCV CvMat的使用
- OpenCV直方图的使用
- opencv---cvReSize的使用
- OpenCV直方图的使用
- 【opencv】cvCaptureFromFile的使用
- opencv的配置、使用
- OpenCV CvMat的使用
- 【OpenCV】 TrackBar的使用
- opencv,inputArra的使用
- 【OpenCV】SURF的使用
- python的opencv使用
- OpenCV cvMat的使用
- HttpHandler与HttpModule的用处与区别
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- Android事件的传递机制
- jz2440下的input输入子系统
- 消费者和生产者
- OpenCV库的使用
- 布隆过滤器
- 如何调试makefile
- subList方法
- iOS学习笔记(二)
- kafka-hadoop-loader项目介绍
- MPAndroidChart的使用
- 公司正能量语录
- Python快速入门