图像基本操作 一.访问和修改像素值 先来理解一下,图像与一般的矩阵或张量有何不同(不考虑图像的格式,元数据等信息).首先,一张图像有自己的属性,宽,高,通道数.其中宽和高是我们肉眼可见的属性,而通道数则是图像能呈现色彩的属性.我们都知道,光学三原色是红色,绿色和蓝色,这三种颜色的混合可以形成任意的颜色.常见的图像的像素通道也是对应的R,G,B三个通道,在OpenCV中,每个通道的取值为0-255.(还有RGBA,YCrCb,HSV等其他图像通道表示).即,一般彩色图像读进内存之后是一个h * w…
目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV 学习笔记 05 人脸检测和识别进行区分:需重新说明一下什么是目标检测. 目标检测是一个程序,它用来确定图像的某个区域是否有要识别的对象,对象识别是程序识别对象的能力.识别通常只处理已检测到对象的区域.若人们总是会在有人脸图像的区域去识别人脸. 在计算机视觉中有很多目标检测和识别的技术,本章会用到:…
1.检测轮廓 轮廓检测是图像处理中经常用到的,OpenCV-Python接口中使用cv2.findContours()函数查找检测物体的轮廓. cv2.findContours(image, mode, method[, contours[, hierarchy[, offset ]]]) 返回两个值:contours(轮廓本身),hierarchy(每条轮廓对应的属性) 参数: image:寻找轮廓的图像 mode:轮廓的检索模式: cv2.RETR_EXTERNAL表示只检测外轮廓 cv2.…
轮廓检测: 轮廓检测的原理通俗的说就是掏空内部点,比如原图中有3*3的矩形点.那么就可以将中间的那一点去掉. 一.关键函数1.1  cvFindContours函数功能:对图像进行轮廓检测,这个函数将生成一条链表以保存检测出的各个轮廓信息,并传出指向这条链表表头的指针.函数原型:int cvFindContours(  CvArr* image,                              第一个参数表示输入图像,必须为一个8位的二值图像  CvMemStorage* storag…
很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tree/master/OpenCVTest 效果 代码 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp>…
很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tree/master/OpenCVTest 效果 代码 我是直接使用OpenCV自带的分类器.如果有数据,可以自己训练得到. opencv之级联分类器训练属于自己的xml文件 opencv3.3版本训练自己的物体分类器 #include <opencv2/core.hpp> #include <…
在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式: 在图像像素中其中: 参数f(x)表示源图像像素. 参数g(x) 表示输出图像像素. 参数a(需要满足a>0)被称为增益(gain),常常被用来控制图像的对比度. 参数b通常被称为偏置(bias),常常被用来控制图像的亮度. 一.获取图像像素 在opencv中图像数据是存放在Mat数据类型中,我们知道一个像素有rgb构成,所以Mat是个三维数组,一下就是简单的获取mat中图像像素. //三个for循环,执行运算 new_…
在图像处理中,目标区域定义为感兴趣区域ROI(region of Interest),这是后期图像处理的基础,在获取ROI后,进行一些列的处理.ROI区域在Opencv中就是Rect,先构建Rect,然后给予ROI一些特点,形成了图像掩膜. 一.ROI创建 //定义一个Mat类型并给其设定ROI区域 Mat imageROI; //方法一 imageROI=image(Rect(,,logo.cols,logo.rows)); //方法二 imageROI=Image(Range(,+logoI…
在OpenCV中,可以很方便的计算一个像素点到轮廓的距离,计算距离的函数为: double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist) Parameters: contour – 输入参数轮廓. pt – 测试的点. measureDist – 如果为false的话,则函数计算符号,在轮廓外部在为-1,在轮廓内为1,在轮廓上,则为0.如果为ture,则计算实际的像素符号距离,在轮廓外的点像素距离为负值,在内…
在OpenCV中,能够很方便的求轮廓包围盒.包括矩形,圆形,椭圆形以及倾斜的矩形(包围面积最小)集中包围盒.用到的四个函数是: Rect boundingRect(InputArray points) void minEnclosingCircle(InputArray points, Point2f& center, float& radius) RotatedRect minAreaRect(InputArray points) RotatedRect fitEllipse(Input…