将OpenCV和VS配置成功后,开始编写程序。
值得说明的是,在OpenCV中,有以下两种形式的函数调用,
一种定义在highgui_c.h中,例如:cvNamedWindow("test", CV_WINDOW_AUTOSIZE),这种形式的函数调用要使用cv作为函数的限定;
一种定义在highgui.hpp中,例如:namedWindow("test", WINDOW_AUTOSIZE),这种形式的函数调用要在函数头部申明 using namespace cv;
第一种形式在opencv1.x中用的较多,基于c接口的函数;第二种形式在opencv2.x中用的较多,基于c++接口的函数。
下面这段代码实现简答的读取和显示图片的功能。
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat img = imread("test.jpg");
namedWindow("test", WND_PROP_FULLSCREEN);
imshow("test",img);
waitKey(0);
return 0;
}
imread()函数主要将该filename所指定路径的指定文件读取到img数组中。
该函数读取的是默认的三通道图像,读取的顺序默认情况下是BGR顺序,如果想得到单通道(灰度级的)图像,则可以使用下面的方式:Mat img=imread(filename, 0);
第一个参数指定了该窗口的窗口标题,(如本例中“test”),我们可以通过该参数引用这个窗口。
第二个参数定义了窗口的属性,(如本例中:WND_PROP_FULLSCREEN)
imshow()用于显示图像。
第一个参数确定在哪个已存在的窗口中显示图像,(如本例中:用“test”来引用上面已经创建的窗口)
第二个参数用于传递数据;
waitKey()函数的功能是使程序暂停,等待用户在图像界面触发一个按键操作。
如果该函数参数设为一个正数,则程序暂停一段时间,时间长度为该数值个毫秒单位,然后继续执行程序。