OpenCV基础篇之读取显示图片
程序及分析
/*
* FileName : read.cpp
* Author : xiahouzuoxin @163.com
* Version : v1.0
* Date : Tue 13 May 2014 07:34:25 PM CST
* Brief :
*
* Copyright (C) MICL,USTB
*/
#include <cv.h>
#include <highgui.h> using namespace cv;
using namespace std; int main(int argc, char **argv)
{
Mat img; img = imread(argv[1], 1); if (argc != 2 || !img.data) {
cout<<"No image data.\n"<<endl;
return -1;
} namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
imshow("Display Image", img); waitKey(0); return 0;
}
包括和,cv.h中包括了OpenCV的核心功能,包括Mat等数据结构,highgui.h主要包括用于图片显示的接口。
Mat是OpenCV中特有的矩阵类,Mat.data是数据指针,通过推断数据指针是否为NULL能够确定是否读入图片数据。
namedWindow有两个參数,其函数原型例如以下:
CV_EXPORTS_W void namedWindow(const String& winname, int flags=WINDOW_AUTOSIZE);
第一个參数winname是窗体名,是窗体对象的唯一标识。就和人的名字一样,因此,不能同一时候有两个同样名字的窗体!flags设置窗体属性,缺省參数值为WINDOW_AUTOSIZE=CV_WINDOW_AUTOSIZE=1。
和matlab中的一样。有木有。第一个參数表示我要在哪个窗体显示,第二參数表示我要显示那幅图像,用脚趾头想一想。是不是有这两个參数就能知道在哪显示什么了?
另一个
waitKey(int delay=0)表示图片显示窗体保留时间,单位为ms。当delay=0时,按下键盘上随意按键才会关闭图像显示的窗体用于编译上述程序的Makefile例如以下:
TARG=read
SRC=read.cpp
LIB=-L/usr/local/lib/
INC=-I/usr/local/include/opencv/
CFLAGS=-g $(TARG):$(SRC)
g++ -o $@ ${CFLAGS} $(LIB) $(INC) -lopencv_core -lopencv_highgui $^ .PHONY:clean clean:
-rm $(TARG) -f
我将OpenCV安装到默认文件夹/usr/local下,因此在使用g++编译时要包括链接库(
-L/usr/local/lib/)和头文件(-I/usr/local/include/opencv/)注:在OpenCV基础篇中都使用该格式的Makefile文件,因此后面的例程都能够拷贝后直接使用,仅仅须要改动TARG和SRC參数就可以!
效果

OpenCV基础篇之读取显示图片的更多相关文章
- OpenCV【2】---读取png图片显示到QT label上的问题
问题一: 操作图片test.png是一个365x365的PNG图片 通过OpenCV自带的GUI显示出来图像是没问题的,例如以下操作代码所看到的: QStringfileName=QFileD ...
- OpenCV 2.2版本号以上显示图片到 MFC 的 Picture Control 控件中
OpenCV 2.2 以及后面的版本号取消掉了 CvvImage.h 和CvvImage.cpp 两个文件,直接导致了苦逼的程序猿无法调用里面的显示函数来将图片显示到 MFC 的 Picture Co ...
- android滑动基础篇 - 触屏显示信息
效果图: 代码部分: activity类代码: package com.TouchView; /* * android滑动基础篇 * */ import android.app.Activity; i ...
- QT+OpenGL读取显示图片,OpenGL在QT里的刷新问题(好几篇)
GLuint readImage(char *filename){ GLuint tex_id; GLint alignment; QImage tex, buf; buf.load ...
- opencv——基础篇
一 . opencv是什么及其作用? OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效— ...
- OpenCV基础篇之查找表
程序及分析 /* * FileName : lookup_table.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Su ...
- C# 操作Excel基础篇(读取Excel、写入Excel)
注意事项:Excel的数据表中最多只能储存65535行数据,超出后,需要将数据分割开来进行储存.同时对于Excel中的乱码象限,是由于编码的错误方式导致引起的! 一.读取Excel数据表,获得Data ...
- C#保存图片到数据库并读取显示图片的方法
private void button2_Click_1(object sender, System.EventArgs e) { string pathName; if (this.openFile ...
- OpenCV基础篇之画图及RNG随机数对象
程序及分析 /* * FileName : random_gen.c * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 29 ...
随机推荐
- 高校学生学籍系统C++&mysql
/* C++程序设计实践教学环节任务书 一.题目:高校学籍管理系统 二.目的与要求 1. 目的: 1.掌握C++语言基本知识及其编程方法 2.掌握类和对象的基本概念与用法 3.掌握面向对象中的继承与 ...
- POJ 1236--Network of Schools【scc缩点构图 && 求scc入度为0的个数 && 求最少加几条边使图变成强联通】
Network of Schools Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13325 Accepted: 53 ...
- Java 零基础跑起第一个程序
Java 零基础跑起第一个程序 一 概述 1 java代码编译 编译后才干在计算机中执行.编译就是把人能看懂的代码转换成机器能看懂的形式 2 java的长处 一次编译.到处执行.由于java代码是在 ...
- BZOJ:3441 乌鸦喝水
bzoj:3441 乌鸦喝水 题目传送门 Description 一只乌鸦在自娱自乐,它在面前放了n个有魔力的水缸,水缸里装有无限的水. 他准备从第1个水缸飞到第n个水缸,共m次.在飞过一个水缸的过程 ...
- zzulioj--1769--去师院的旅程:能怎么走(三)(0.0)
1796: 去师院的旅程:能怎么走(三) Time Limit: 1 Sec Memory Limit: 128 MB Submit: 404 Solved: 200 SubmitStatusWe ...
- 一个Python项目的创建架构
要进行Python项目的编写,很多人刚开始一筹莫展,不知道该如何去构建一个项目,现在粗略的描述一下一个项目的创建过程,供大家参考了解一下: 大家可以先忽略其中创建的函数 ,每个包的含义都有定义,大家可 ...
- 5.文件I/O
1 C标准函数与系统函数的区别 文件的结构体: 1.1 I/O缓冲区 每一个FILE文件流都有一个缓冲区buffer,默认大小8192Byte. 1.2 效率 文件缓冲区会降低效率.这里提供缓冲区主要 ...
- electron-vue中使用iview 报错this. is readonly的解决办法
title: electron-vue中使用iview 报错this. is readonly的解决办法 toc: false date: 2019-02-12 19:33:28 categories ...
- luogu 3952 时间复杂度(模拟)
时间复杂度 这道题从两个月前开始做,一直没做出来,最后今晚决心一定要做出来.于是开始认真的在打草纸上写思路,最后在AC的那一刻,差点哭了出来!! 题目大意 这个自己看吧,noip2017的D1T2 s ...
- mac下安装postgreSql
在 mac 下,可以利用 homebrew 直接安装 PostgreSQL: 1 brew install postgresql -v 稍等片刻,PostgreSQL 就安装完成.接下来就是初始数据库 ...