
机器视觉
GiffordY
这个作者很懒,什么都没留下…
展开
-
OpenCV-Python学习笔记(二):本地/摄像头视频读取、处理、写入磁盘
下面代码使用OpenCV-Python版,实现本地/摄像头视频读取、处理和写入磁盘。# -*- coding: utf-8 -*-import cv2# 打开笔记本自带摄像头拍摄视频# cap = cv2.VideoCapture(0)# 读取本地视频videoFilePath = 'D:\Video_example.mp4'capture = cv2.VideoCaptu...原创 2019-06-11 16:28:00 · 1483 阅读 · 0 评论 -
OpenCV-Python学习笔记(三):图像的基础操作:获取像素值并修改、获取图像信息、ROI、通道拆分与合并、边界填充
1.获取并修改像素值首先我们需要读入一幅图像,可以根据像素的行和列的坐标获取他的像素值。对 BGR 图像而言,返回值为 B,G,R 的值。对灰度图像而言,会返回他的灰度值(亮度 intensity):import cv2import numpy as npimg = cv2.imread('D:/opencv/images/roi.jpg')# 获取像素值px = img[10...转载 2019-06-11 20:09:01 · 7118 阅读 · 0 评论 -
OpenCV-Python学习笔记(十二):OpenCV中的轮廓:找轮廓、绘制轮廓、轮廓特征、轮廓的性质、轮廓的层次结构
1 初识轮廓目标• 理解什么是轮廓• 学习找轮廓,绘制轮廓等• 函数: cv2.findContours(), cv2.drawContours()1.1 什么是轮廓轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。• 为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边...翻译 2019-06-17 17:16:47 · 3963 阅读 · 0 评论 -
OpenCV-Python学习笔记(四):图像上的算术运算:图像加法、图像混合、按位运算
1.图像加法可以使用函数 cv2.add() 将两幅图像进行加法运算,两幅图像的大小,类型必须一致。(注意: OpenCV 中的加法与 Numpy 的加法是有所不同的。OpenCV 的加法是一种饱和操作,而 Numpy 的加法是一种模操作。r如下所示。推荐使用 OpenCV 中的函数)import cv2import numpy as npx = np.uint8([250])...转载 2019-06-11 20:52:07 · 1304 阅读 · 0 评论 -
OpenCV-Python学习笔记(五):程序性能检测及优化
在图像处理中每秒钟都要做大量的运算,所以你的程序不仅要能给出正确的结果,同时还必须要快。所以这节将要学习:• 检测程序的效率• 一些能够提高程序效率的技巧1.使用 OpenCV 检测程序效率cv2.getTickCount() 函数返回从参考点到这个函数被执行的时钟数。所以当你在一个函数执行前后都调用它的话,你就会得到这个函数的执行时钟数。cv2.getTickFrequency(...转载 2019-06-11 21:56:21 · 702 阅读 · 0 评论 -
OpenCV-Python学习笔记(十六):Hough直线变换、Hough圆变换
一、Hough 直线变换(Hough Line Transform )目标• 理解霍夫变换的概念• 学习如何在一张图片中检测直线• 学习函数: cv2.HoughLines(), cv2.HoughLinesP()原理霍夫变换在检测各种形状的的技术中非常流行,如果你要检测的形状可以用数学表达式写出,你就可以是使用霍夫变换检测它,即使检测的形状存在一点破坏或者扭曲也可以使用。我们下面...翻译 2019-06-25 17:15:02 · 1692 阅读 · 0 评论 -
OpenCV-Python学习笔记(十七):分水岭算法图像分割
分水岭算法图像分割(Image Segmentation with Watershed Algorithm)目标本节我们将要学习• 使用基于掩模的分水岭算法进行图像分割• 函数:cv2.connectedComponents()、cv2.watershed()1. 原理任何一副灰度图像都可以被看成拓扑平面,灰度值高的区域可以被看成是山峰,灰度值低的区域可以被看成是山谷。我们向每...翻译 2019-06-25 22:11:39 · 3278 阅读 · 0 评论 -
OpenCV-Python学习笔记(十八):使用 GrabCut 算法进行交互式前景提取
Interactive Foreground Extraction using GrabCut Algorithm:目标在本节中我们将要学习:• GrabCut 算法原理,使用 GrabCut 算法提取图像的前景• 创建一个交互是程序完成前景提取原理GrabCut 算法是由微软剑桥研究院的 Carsten_Rother, Vladimir_Kolmogorov和 Andrew_B...翻译 2019-06-26 11:22:47 · 2311 阅读 · 0 评论 -
OpenCV-Python学习笔记(一):图像读入、显示、保存,BGR模式转RGB模式
使用OpenCV-Python实现图像读入、显示与保存:# -*- coding: utf-8 -*-import cv2from matplotlib import pyplot as plt# # 第二个参数,0为灰度模式显示,1为彩色图像,默认值为1# img0 = cv2.imread(r'D:\OpenCV_Python\chepai.jpg', 0)# img1 =...原创 2019-06-11 13:44:42 · 6494 阅读 · 0 评论 -
OpenCV-Python学习笔记(十五):模板匹配(Template Matching)
目标在本节我们要学习:1. 使用模板匹配在一幅图像中查找目标2. 函数: cv2.matchTemplate(), cv2.minMaxLoc()原理模板匹配是用来在一副大图中搜寻查找模版图像位置的方法。 OpenCV 为我们提供了函数: cv2.matchTemplate()。和 2D 卷积一样,它也是用模板图像在输入图像(大图)上滑动,并在每一个位置对模板图像和与其对应的输入图像的子...翻译 2019-06-20 21:43:01 · 4056 阅读 · 0 评论 -
OpenCV-Python学习笔记(六):颜色空间转换(Changing Colorspaces)
OpenCV 图像处理之颜色空间转换目标• 你将学习如何对图像进行颜色空间转换,比如从 BGR 到灰度图,或者从BGR 到 HSV 等。• 我没还要创建一个程序用来从一幅图像中获取某个特定颜色的物体。• 我们将要学习的函数有: cv2.cvtColor(), cv2.inRange() 等。1.转换颜色空间在 OpenCV 中有超过 150 种进行颜色空间转换的方法。但是我们经常...原创 2019-06-12 17:20:55 · 829 阅读 · 0 评论 -
OpenCV-Python学习笔记(七):几何变换:缩放、平移、旋转、仿射变换、透射变换
目标• 学习对图像进行各种变换,例如缩放、平移、旋转、仿射变换、透射变换。• 将要学到的函数有: cv2.getPerspectiveTransform()变换OpenCV 提供了两个变换函数, cv2.warpAffine() 和 cv2.warpPerspective(),使用这两个函数你可以实现所有类型的变换。cv2.warpAffine() 接收的参数是2 × 3 的变换矩阵,...原创 2019-06-13 16:17:26 · 1763 阅读 · 0 评论 -
OpenCV-Python学习笔记(八):图像阈值:简单阈值、自适应阈值、 Otsu's阈值
目标• 本节你将学到简单阈值,自适应阈值, Otsu’s 二值化等• 将要学习的函数有 cv2.threshold, cv2.adaptiveThreshold 等。1.简单阈值与名字一样,这种方法非常简单。在像素值高于阈值时,我们给这个像素赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色)。这个函数就是 cv2.threshhold(src, thresh, ma...原创 2019-06-13 17:43:27 · 2938 阅读 · 0 评论 -
OpenCV-Python学习笔记(九):图像平滑:均值/高斯/中值/双边滤波
目标• 学习使用不同的低通滤波器对图像进行模糊• 使用自定义的滤波器对图像进行卷积(2D 卷积)2D 卷积与一维信号一样,我们也可以对 2D 图像实施低通滤波(LPF),高通滤波(HPF)等。 LPF 帮助我们去除噪音,模糊图像。 HPF 帮助我们找到图像的边缘。OpenCV 提供的函数 cv2.filter2D() 可以让我们对一幅图像进行卷积操作。下面我们将对一幅图像使用平均滤...原创 2019-06-13 21:33:52 · 2460 阅读 · 0 评论 -
OpenCV-Python学习笔记(十三):直方图的计算绘制与分析、直方图均衡化、2D直方图、直方图反向投影
1 直方图的计算,绘制与分析目标:• 使用 OpenCV 或 Numpy 函数计算直方图• 使用 Opencv 或者 Matplotlib 函数绘制直方图• 将要学习的函数有: cv2.calcHist( ), np.histogram( )通过直方图你可以对整幅图像的灰度分布有一个整体的了解。直方图的 x 轴是灰度值(0 到 255), y 轴是图片中具有同一个灰度值的点的数...翻译 2019-06-18 20:31:53 · 1550 阅读 · 0 评论 -
OpenCV-Python学习笔记(十):形态学图像处理:腐蚀、膨胀、开运算、闭运算、形态学梯度、顶帽、黑帽
目标• 学习不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算、形态学梯度、顶帽、黑帽• 我们要学习的函数有:cv2.erode(), cv2.dilate(), cv2.morphologyEx()等原理形态学操作一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或称为核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开...翻译 2019-06-14 16:42:19 · 1377 阅读 · 0 评论 -
OpenCV-Python学习笔记(十四):图像变换:傅里叶变换与反变换
OpenCV-Python官方文档关于图像傅里叶变换和反变换的教程网址:https://docs.opencv.org/4.1.0/de/dbc/tutorial_py_fourier_transform.html目标我们将要学习:• 使用 OpenCV 对图像进行傅里叶变换(DFT):cv2.dft(),cv2.idft()• 使用 Numpy 中 FFT(快速傅里叶变换)函数:...翻译 2019-06-19 21:48:39 · 10107 阅读 · 1 评论 -
OpenCV4学习笔记(一):图像读取显示;灰度化、高斯模糊、降采样;读、写某处像素值
最近开始学习OpenCV,记录一下学习笔记,便于复习巩固。本代码的功能、作用: 1.读取并显示图像; 2.对rgb图像进行灰度化、高斯模糊、降采样处理 3.读、写某处的像素值#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(i...原创 2019-06-10 15:04:16 · 1455 阅读 · 0 评论 -
OpenCV-Python学习笔记(十一):图像梯度与边缘检测:Sobel、Scharr、Laplacian、Canny算子
图像梯度:目标• 图像梯度,图像边界等• 使用到的函数有: cv2.Sobel(), cv2.Schar(), cv2.Laplacian() 等原理梯度简单来说就是求导。OpenCV 提供了三种不同的梯度滤波器,或者说高通滤波器: Sobel,Scharr 和 Laplacian。Sobel, Scharr 其实就是求一阶或二阶导数。 Scharr 是对 Sobel(使用小的卷积核求...翻译 2019-06-15 21:51:26 · 1378 阅读 · 0 评论 -
OpenCV4学习笔记(二):读取本地/摄像头视频,并将彩色视频转换为对数极坐标视频(视频处理)
读取本地视频或者摄像头采集的视频,并将彩色视频转换为对数极坐标视频(视频处理),保存处理后的视频。#include <opencv2/opencv.hpp>#include <iostream>int main(int argc, char* argv[]) { cv::String inputFileName = "D:\\Code files\\Vide...原创 2019-06-10 21:57:30 · 884 阅读 · 0 评论