windows10 + vs2013 + opencv3.0
build文件夹下include是C&C++头文件所在文件夹;
doc是文档文件夹;
java是java开发的库文件夹;
python是python开发库文件夹;
x64和X86是已编译好的C&C++的64位和32位库文件夹,在它里面有vc11、vc12文件夹分别对应VC++2012和VC++2013。
添加环境变量: OpenCV E:OpenCVopencvuild
系统Path变量添加: ;%OPENCV%x64vc12in
E:OpenCVopencv目录下我已经生成了 opencv_debug.props 属性表。以后每次新建项目后导入这份属性表就可以了。
属性管理器 -> 右键“工程名” -> 添加现有属性表
64位PC,在工程的配置管理器上要选择x64方式,而不是win32。
/* OpenCV3.0 学习 2015.10 by Huangtao *///////////////////////////////////////////////////////////// #include <opencv2opencv.hpp> #include <iostream> using namespace cv; using namespace std; ////图像显示 //int main() //{ // // Mat img = imread("dog.jpg"); // if (img.empty()) // { // cout << "error"; // return -1; // } // imshow("dog", img); // // //等待任意键按下后退出 // waitKey(0); // // return 0; //} ////使用blur函数进行基于均值滤波的图像模糊操作 //int main() //{ // Mat srcImage = imread("1.jpg"); // imshow("均值滤波【原图】", srcImage); // // Mat dstImage; // blur(srcImage, dstImage, Size(10, 10)); // imshow("均值滤波【效果图】", dstImage); // // waitKey(0); // return 0; //} ////使用canny函数进行灰度边缘检测 //int main() //{ // Mat srcImage = imread("1.jpg"); // imshow("Canny边缘检测【原图】", srcImage); // // Mat dstImage, edge, grayImage; // //创建与src同类型和大小的矩阵(dst) // dstImage.create(srcImage.size(), srcImage.type()); // //将原图像转换为灰度图像 // cvtColor(srcImage, grayImage, COLOR_BGR2GRAY); // //先用使用 3x3内核来降噪 // blur(grayImage, edge, Size(3, 3)); // //运行Canny算子 // Canny(edge, edge, 10, 100, 3); // //显示效果图 // imshow("Canny边缘检测【效果图】", edge); // // waitKey(0); // return 0; //} ////使用VideoCapture类调用摄像头读入视频并显示 //int main() //{ // //打开默认摄像头 // VideoCapture capture(0); // //循环显示每一帧 // while (1) // { // Mat frame; // //读取当前帧 // capture >> frame; // imshow("读取视频", frame); // waitKey(30); //延时30ms // } // // return 0; //} //使用OpenCV进行基本的绘图操作 #define WINDOW_WIDTH 600 //绘制椭圆 void DrawEllipse(Mat img, double angle); //绘制圆 void DrawFilledCircle(Mat img, Point center); //绘制线段 void DrawLine(Mat img, Point start, Point end); void DrawEllipse(Mat img, double angle) { //线段的粗细程度 int thickness = 0; //线段的类型 int lineType = 8; ellipse(img, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2), Size(WINDOW_WIDTH / 2, WINDOW_WIDTH / 8), angle, 0, 360, Scalar(0, 0, 255), thickness, lineType); } void DrawFilledCircle(Mat img, Point center) { int thickness = 1; int lineType = 8; circle(img, center, WINDOW_WIDTH / 16, Scalar(0, 255, 0), thickness, lineType); } void DrawLine(Mat img, Point start, Point end) { int thickness = 4; int lineType = 8; line(img, start, end, Scalar(255, 255, 255), thickness, lineType); } int main(void) { // 创建空白的Mat图像 Mat Image1 = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3); //DrawEllipse(Image1, 0); //DrawFilledCircle(Image1, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2)); DrawLine(Image1, Point(WINDOW_WIDTH / 4, 0), Point(WINDOW_WIDTH / 4, WINDOW_WIDTH)); DrawLine(Image1, Point(WINDOW_WIDTH / 4 * 3, 0), Point(WINDOW_WIDTH / 4 * 3, WINDOW_WIDTH)); rectangle(Image1, Point(WINDOW_WIDTH / 8 * 4, WINDOW_WIDTH / 9 * 6), Point(WINDOW_WIDTH / 8 * 5, WINDOW_WIDTH / 9 * 8), Scalar(0, 255, 255), -1, 8); //显示绘制出的图像 imshow("绘制图1", Image1); moveWindow("绘制图1", 100, 0); waitKey(0); return(0); }