【OpenCV计算机视觉编程攻略】全书总结

本文档详细介绍了OpenCV库的使用,包括图像编程入门、像素操作、直方图处理、形态学运算、图像滤波、特征检测等核心概念。从装载、显示和存储图像到检测兴趣点,覆盖了OpenCV编程的各种关键步骤,帮助读者掌握计算机视觉的基本技能。
摘要由CSDN通过智能技术生成

文章链接:https://blog.csdn.net/q_z_r_s

机器感知

一个专注于SLAM、三维重建、机器视觉等相关技术文章分享的公众号

第1章 图像编程入门

1.1 简介

1.2 安装OpenCV库

1.3 装载、显示和存储图像

  • - imread——读图像
  • - namedWindow——定义窗口
  • - imshow——显示图像
  • - flip——翻转图像
  • - waitKey——等待按键
  • - imwrite——存储图像
  • - setMouseCallback——响应鼠标在图像上的点击操作
  • - circle、ellipse、line、rectangle——在图像上绘画对应形状
  • - putText——在图像上写入文本

1.4 深入了解cv::Mat

  • - Mat::create——重新分配一个新图像
  • - Mat::copyTo——把图像复制给另外一个图像
  • - Mat::convertTo——转换图像数据类型

1.5 定义兴趣区域

  • - 方法一:
  cv::Mat imageROI(image,
                 cv::Rect(image.cols-logo.cols,  //ROI坐标
                          image.rows-logo.rows,
                          logo.cols,logo.rows)); //ROI大小
  logo.copyTO(imageROI);                           //插入标志
  •   - 所谓ROI其实就是Mat类的一种构造函数产生的对原图像内存的新的引用,使用Rect来定义ROI区域时,前两个参数为ROI区域的左上角坐标,后两个参数表示ROI的行列大小。
  • - 方法二:
  cv::Mat imageROI(image,
    cv::Range(image.rows-logo.rows, logo.rows)   //ROI行范围      
    cv::Range(image.rows-logo.rows, logo.rows)); //ROI列范围
  logo.copyTO(imageROI);                           //插入标志
  •   - 第二种方法是给出行列坐标的起始和终止范围
  • - 图像掩码:: OpenCV中有些操作可以定义掩码,掩码必须为8位图像,如果掩码中某个位置的值不为0,则在这个位置上的操作就会起作用;如果掩码中的某些像素位置的值为0,那么对图像中的相应位置的操作将不起作用;OpenCV中大多数基于像素的操作都可以使用掩码。

第2章 操作像素

2.1 简介

2.2 访问像素值

  • - Mat::at<typename T>(row,col)\[n]——对8-bit图像而言,单通道图像时,T=uchar,\[n]不需要;当为三通道时,T=cv::Vec3b,\[n]可以是0、1、2。

2.3 用指针扫描图像

  • - Mat::ptr<typename T>(row)——T为图像数据类型,此方法是把图像看成三维立体的来访问,row对应的不是单纯的行,更准确的说是三维立体的层。
  • - 低层次指针算法访问行:
  uchar *data = image.data;
  data += image.step;                              //从一行移到下一行

2.4 用迭代器扫描图像

  • - cv::MatIterator_<cv::Vec3b> it
  • - cv::Mat_<cv::Vec3b>::iterator it
  cv::Mat_<cv::Vec3b>::iterator it_begin =
                     image.begin<cv::Vec3b>();     //获得起始位置
  cv::Mat_<cv::Vec3b>::iterator it_end   =
                     image.end<cv::Vec3b>();       //获得结束位置

2.5 编写高效的图像扫描循环

  • - cv
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值