OpenCV 装载、 显示和存储图像及在图像上绘图

  1. #include <opencv2/core/core.hpp>  
  2. #include <opencv2//highgui/highgui.hpp>  
  3. #include <iostream>  
  4. using namespace std;  
  5.   
  6. int main()  
  7. {  
  8.     cv::Mat image; //创建一个空对象  
  9.     //这个定义创建了一个尺寸为0×0的图像。 可以访问cv::Mat的size属性来验证这一点  
  10.     cout << "This image is " << image.rows << "*"  
  11.         << image.cols << endl;  
  12.     image = cv::imread("C:\\Users\\Administrator\\Desktop\\lena.jpg");// 读取输入图像  
  13.     if (image.empty())  // 错误处理.如果没有分配图像数据,empty方法返回true。  
  14.     {  
  15.         cout << "ERROR!" << endl;  
  16.     }  
  17.     cv::namedWindow("Original Image");// 定义窗口( 可选)  
  18.     //可以看到, 这个窗口是用名称来标识的。 我们稍后可以重用这个窗口  
  19.     //来显示其他图像, 也可以用不同的名称创建多个窗口。  
  20.     cv::imshow("Original Image", image) ;  
  21.     //因为它是控制台窗口, 会在main函数结束时关闭, 所以我们增加一  
  22.     //个额外的highgui函数, 需要用户键入数值才能结束程序:  
  23.     cv::waitKey(0);//0表示永远地等待按键;正数表示等待指定的毫秒数  
  24.     cv::Mat result; //创建另一个空的图像  
  25.     cv::flip(image, result, 1);// 正数表示水平;0表示垂直;负数表示水平和垂直  
  26.     cv::namedWindow("Output Image");  
  27.     cv::imshow("Output Image", result);  
  28.     cv::waitKey(0);  
  29.     cv::imwrite("C:\\Users\\Administrator\\Desktop\\lenaFlip.jpg",result);//保存结果  
  30.     // 读入一个图像文件并转换为灰度图像  
  31.     cv::Mat image_gray = cv::imread("C:\\Users\\Administrator\\Desktop\\lena.jpg",CV_LOAD_IMAGE_GRAYSCALE);  
  32.     // 读取图像, 并转换为三通道彩色图像  
  33.     cv::Mat image_color = cv::imread("C:\\Users\\Administrator\\Desktop\\lena.jpg", CV_LOAD_IMAGE_COLOR);  
  34.     cout << "image_gray has " << image_gray.channels() << " channels." << endl;  
  35.     cout << "image_color has " << image_color.channels() << " channels." << endl;  
  36.       
  37.     /*OpenCV还提供了几个用于在图像上绘制形状和写入文本的函数。 基 
  38.     本的形状绘制函数有circle、 ellipse、 line、 rectangle。 这 
  39.     是一个使用circle函数的例子:*/  
  40.     cv::circle(image_gray,// 目标图像  
  41.         cv::Point(300, 300), // 中心点坐标  
  42.         100, // 半径  
  43.         0, // 颜色( 这里用黑色)  
  44.         3); // 厚度  
  45.     cv::putText(image_gray, // 目标图像  
  46.         "She is Lena."// 文本  
  47.         cv::Point(200, 450), // 文本位置  
  48.         cv::FONT_HERSHEY_PLAIN, // 字体类型  
  49.         2.0, // 字体大小  
  50.         255, // 字体颜色( 这里用白色)  
  51.         2); // 文本厚度  
  52.     cv::namedWindow("Drawing on an Image");  
  53.     cv::imshow("Drawing on an Image", image_gray);  
  54.     cv::waitKey(0);  
  55.     return 0;  

  1. }  

原博客地址:http://blog.csdn.net/abc8730866/article/details/55509307

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值