OpenCV(1)-初试牛刀--显示图像

原创 2013年12月06日 09:43:45

学习OpenCV第一课。


/* 第一OpenCV程序 */
#include "opencv/highgui.h"

int main(int argc, char** argv)
{
	IplImage* img = cvLoadImage("1.jpg", 0);
	/*
	 * C语言版本: IplImage* cvLoadImage(const char* filename,
	 *								int flags=CV_LOAD_IMAGE_COLOR )
	 * Fuction: Loads an image from a file.
	 * Parameters:
	 *		filename - Name of file to be loaded.
	 *		flags - Flags specifying the color type of a loaded image:
	 *				1) >0 Return a 3-channel color image (CV_LOAD_IMAGE_COLOR == 1)
	 *				      返回一个3通道的彩色图片,RGB格式,若缺省为1);
	 *				2) =0 Return a grayscale image (CV_LOAD_IMAGE_GRAYSCALE == 0)
	 *					  返回一个单通道灰白图片;
	 *				3) <0 Return the loaded image as is.(CV_LOAD_IMAGE_ANYCOLOR == -1)
	 *				      返回原始图片。如果原始图片是RGBA格式等其他格式需要得到原始图片就要用3).
	 *				      用1)和2)会被转换格式。
	 */
	cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
	/*
	 * C语言版本: int cvNamedWindow(const char* name, int flags)
	 * Function: Creates a window.
	 * Parameters:
	 *		name – Name of the window in the window caption that may be used as 
	 *			   a window identifier.(窗口的标题和标识符)
	 *		flags – Flags of the window. Currently the only supported flag is 
	 *		        CV_WINDOW_AUTOSIZE .If this is set, the window size is automatically 
	 *		        adjusted to fit the displayed image (see imshow() ), and you cannot 
	 *		        change the window size manually.
	 *		        目前只有也是默认的窗口状态是CV_WINDOW_AUTOSIZE,窗口会自动适应载入图片
	 *		        不能人为改变大小。
	 */
	cvShowImage("EXample1", img);
	/*
	 * C语言版本: void cvShowImage(const char* winname, const CvArr* image)
	 * Function: Displays an image in the specified window.(imShow())
	 * Parameters:
	 *		winname – Name of the window.
	 *		image – Image to be shown.
	 * Note: 1)The function imshow displays an image in the specified window. 
	 *         If the window was created with the CV_WINDOW_AUTOSIZE flag, 
	 *         the image is shown with its original size.
	 *         如果窗口的状态是CV_WINDOW_AUTOSIZE,图片显示其原来的大小;
	 *       2) Otherwise, the image is scaled to fit the window.The function 
	 *          may scale the image, depending on its depth:
	 *          否则,图像将被按比例适合窗口大小。
	 *          
	 */
	cvWaitKey(0);
	/* C语言版本:int cvWaitKey(int delay=0 )
	 * Function: Waits for a pressed key.
	 * Parameters:
	 *		delay – Delay in milliseconds. 0 is the special value that means “forever”.
	 *		        等待按键的毫秒时间,0(默认值)表示一直等待。
	 * return: It returns the code of the pressed key or -1 if no key was pressed before 
	 *			the specified time had elapsed.
	 *			返回按键值或者-1,-1表示在等待的过程中没有按键
	 * Note: 1)The function waitKey waits for a key event infinitely delay<=0 or 
	 *         for delay milliseconds, when it is positive. Since the OS has a minimum
	 *         time betweenswitching threads, the function will not wait exactly delay ms,
	 *         it will wait at least delay ms,depending on what else is running on your
	 *         computer at that time.
	 *		   如果delay<=0,将无限等待;delay>0 等待对应的毫秒数,不过因为OS是多线程,所以等待的时
	 *		   间一定是大于给点值的。
	 *       2)The function only works if there is at least one HighGUI window created 
	 *         and the windowis active. If there are several HighGUI windows, any of them 
	 *         can be active.
	 *         此函数在至少有一个HighGUI窗口的情况下被激活(工作)。
	 */
	cvReleaseImage(&img);
	/*
	 * C语言版本: void cvReleaseImage(IplImage** image)
	 * Fuction: Deallocates the image header and the image data. 
	 *          释放保存图片数据的内存,并把图片的指针置为空。
	 * Parameters:	
	 *		image – Double pointer to the image header.
	 * Note:This call is a shortened form of
	 *       if(*image)
	        {
	          cvReleaseData(*image);//回收内存
	          cvReleaseImageHeader(image);//把指针置为空
	        }
	 */
	cvDestroyWindow("Example1");
	/* C语言版本:void cvDestroyWindow(const char* name)
	 * Fction: The function destroyWindow destroys the window with the given name.
	 * Parameters:	
	 *		winname – Name of the window to be destroyed.
	 *
	 */
}










            
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

linux 初试牛刀

  • 2011-07-24 23:33
  • 8.51MB
  • 下载

透析ICMP协议(三): 牛刀初试之一 应用篇ping(ICMP.dll)

透析ICMP协议(三): 牛刀初试之一  应用篇ping(ICMP.dll)  =============================== 这篇文章出自:http://tangentsoft...

u-boot,初试牛刀

手里拿到的uboot是uboot-2012,整个目录和之前的1.3.4没什么太大变化。但是系统启动初始化的流程,以及一些接口函数的定义变化了许多。以及初始化make的流程也变化,另外在nand的ecc...

碎点一(初试牛刀)

1、开发软件的流程 2、三层架构 3、三大范式 第一范式(1NF):字段不可分。 数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型...

Tensorflow minst 初试牛刀

全文参考地址: https://github.com/jikexueyuanwiki/tensorflow-zh/blob/130a43845711cfad8e7d46e75300558349b36...

Modal框通过ajaxform上传文件及各种ajax使用方法,初试牛刀

第一次写博客,欢迎指点。     开发环境和开发工具是:apache,mysql,php,使用thinkphp框架,和bootstrap前段框架,讲的主要是前段的html和js,jquery相关,然而...

matlab初试牛刀__小练习

% T1 % 不妨设 h=2 D=1 clear,clc; h=2;D=1; x=-2*D:0.01:2*D; y=h*(x>D)+h/D.*x.*(abs(x)<=D)-h*(x<-D); % ...

3D Touch 初试牛刀

知道苹果推出的3D Touch 已久,本想翻译文档,发现不如动手把这功能做一遍。今天尝试写了个小Demo,相比其他参考资料,也许并没有深入3D Touch,但是相信也能带大家了解3D Touch 是个...

SQL触发器,初试牛刀(三)

SQL触发器的分类以及使用  1:触发器语法介绍: (这里需要介绍下:很多初次接受触发器的同学,都不知道for | After | Instead of   是什么意思) for 表示:你触发的S...
  • kllxyu
  • kllxyu
  • 2013-06-19 16:16
  • 1541
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)