OpenCV之图片视频数据简单处理笔记

opencv是一个开源的跨平台计算机视觉库,其用C++语言编写,主要接口也是C++语言,自己平时做图像处理相关内容是有用到一些简单的操作,调用的处理接口较为简单,但久了不用又会遗忘,所以在这篇博客里记录下来。

OpenCV图片的存取

Mat srcImage = imread("srcImage.bmp");
imwrite("图片.bmp",srcImage);
imshow("图片名",srcImage);
waitKey();

注意非bmp格式图片的可能存在数据的压缩,会导致图片本身的数据有很小的误差,视频的生成同样存在压缩;图像的显示需要使用waitKey();不然不能停留显示,图片像素数据的提取与存储,使用img.data[ ]比img.at < Vec3b >(i,j) [0/1/2]要高效快速得多。

OpenCV视频的存取

VideoCapture capture;
capture.open("1.avi");
capture>>srcImage;
VideoWriter writer("1.avi", CV_FOURCC('M', 'P', '4', '2'), 60.0, Size(1600, 600));
writer << srcImage;

注意视频的生成同样存在数据的压缩,另外,视频是三通道的,不存在从视频中取出一张图片,而这张图片为灰度图片的情况。

OpenCV在感兴趣区域设置掩码图像

Mat srcImage=imread("1.bmp");
Mat logoImage=imread("2.bmp");
Mat imageROI=srcImage(Rect(0,0,logoImage.cols,logoImage.rows));
Mat mask=imread("2.bmp",0);
logoImage.copyTo(imageROI,mask);
imshow("Image",srcImage);

通过代码在srcImage图片中的左上角0,0坐标设置logoImage图像

OpenCV常用易忘函数

cvtColor(Image,Image,CV_BGR2GRAY);      // 颜色空间转换函数 
Mat srcImage(Size(800,600),CV_8UC3,Scalar::all(0))      // 构造图片
A.copyTo(B);                    // 把图像A复制到图像B
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值