📝 OpenCV教程
70篇技术文档📅  最后修改于: 2020-11-23 03:44:32        🧑  作者: Mango
在前面的章节中,我们讨论了腐蚀和膨胀的过程。除了这两个,OpenCV还具有更多的形态转换。Imgproc类的方法的morphologyEx()用于对给定图像执行这些操作。以下是此方法的语法-此方法接受以下参数-src–Mat类的一个对象,代表源(输入)图像。dst–Mat类的对象,代表目标(输出)图像。op-表示形态学运算类型的整数。内核-内核矩阵。例以下程序演示了如何使用OpenCV库在图像上应...
📅  最后修改于: 2020-11-23 03:45:08        🧑  作者: Mango
金字塔是对图像进行的操作,首先使用特定的平滑滤波器(例如:高斯,拉普拉斯滤波器)对输入图像进行平滑处理,然后对平滑后的图像进行二次采样。重复此过程多次。在金字塔操作期间,图像的平滑度增加,分辨率(大小)减小。金字塔起来在“金字塔向上”中,首先对图像进行上采样,然后再进行模糊处理。您可以使用imgproc类的pyrUP()方法对图像执行Pyramid Up操作。以下是此方法的语法-此方法接受以下参数...
📅  最后修改于: 2020-11-23 03:45:30        🧑  作者: Mango
阈值化是图像分割的一种方法,通常用于创建二进制图像。阈值分为两种类型,即简单阈值和自适应阈值。简单阈值在简单的阈值操作中,将为其值大于指定阈值的像素分配一个标准值。您可以使用Imgproc类的threshold()方法对图像执行简单的阈值操作,以下是此方法的语法。此方法接受以下参数-src–Mat类的一个对象,代表源(输入)图像。dst–Mat类的一个对象,代表目标(输出)图像。thresh-代表...
📅  最后修改于: 2020-11-23 03:45:55        🧑  作者: Mango
在简单阈值化中,阈值是全局的,即对于图像中的所有像素都相同。自适应阈值化是针对较小区域计算阈值的方法,因此对于不同区域将有不同的阈值。在OpenCV中,您可以使用Imgproc类的adaptiveThreshold()方法对图像执行自适应阈值操作。以下是此方法的语法。此方法接受以下参数-src–Mat类的一个对象,代表源(输入)图像。dst–Mat类的一个对象,代表目标(输出)图像。maxValu...
📅  最后修改于: 2020-11-23 03:46:18        🧑  作者: Mango
本章教您如何蟾蜍边框与图像。copyMakeBorder()方法您可以使用名为Core的类的copyMakeBorder()方法为图像添加各种边框,该类属于软件包org.opencv.core。以下是此方法的语法。此方法接受以下参数-src–Mat类的一个对象,代表源(输入)图像。dst–Mat类的一个对象,代表目标(输出)图像。top-整数变量,整数类型,表示图像顶部边框的长度。bottom-整...
📅  最后修改于: 2020-11-23 03:46:37        🧑  作者: Mango
使用sobel操作,您可以在水平和垂直方向上检测图像的边缘。您可以使用sobel()方法对图像进行sobel操作。以下是此方法的语法-此方法接受以下参数-src–Mat类的一个对象,代表源(输入)图像。dst–Mat类的一个对象,代表目标(输出)图像。ddepth-代表图像深度的整数变量(-1)dx-表示x导数的整数变量。 (0或1)dy-表示y导数的整数变量。 (0或1)例以下程序演示了如何在给...
📅  最后修改于: 2020-11-23 03:46:58        🧑  作者: Mango
Scharr还用于检测水平和垂直方向上图像的二阶导数。您可以使用scharr()方法对图像执行scharr操作。以下是此方法的语法-此方法接受以下参数-src–Mat类的一个对象,代表源(输入)图像。dst–Mat类的一个对象,代表目标(输出)图像。ddepth-代表图像深度的整数变量(-1)dx-表示x导数的整数变量。 (0或1)dy-表示y导数的整数变量。 (0或1)例以下程序演示了如何将sc...
📅  最后修改于: 2020-11-23 03:47:17        🧑  作者: Mango
拉普拉斯算子也是一种导数运算符,用于查找图像中的边缘。它是二阶导数掩码。在此蒙版中,我们有两个进一步的分类,一个是正拉普拉斯算子,另一个是负拉普拉斯算子。与其他运算符不同,Laplacian不会在任何特定方向上提取边缘,但会在以下分类中提取边缘。内边缘外缘您可以使用imgproc类的Laplacian()方法对图像执行Laplacian变换操作,以下是此方法的语法。此方法接受以下参数-src-一个...
📅  最后修改于: 2020-11-23 03:47:40        🧑  作者: Mango
距离变换运算符通常将二进制图像作为输入。在该操作中,改变前景区域内的点的灰度强度,以使它们各自的距离与最接近的0值(边界)相隔一定距离。您可以使用distanceTransform()方法在OpenCV中应用距离变换。以下是此方法的语法。此方法接受以下参数-src–Mat类的一个对象,代表源(输入)图像。dst–Mat类的一个对象,代表目标(输出)图像。distanceType-整数类型的变量,表...
📅  最后修改于: 2020-11-23 03:48:02        🧑  作者: Mango
在本章中,我们将学习如何使用OpenCV通过系统摄像机捕获帧。org.opencv.videoio包的VideoCapture类包含使用相机捕获视频的类和方法。让我们一步一步地学习如何捕获帧-步骤1:加载OpenCV本机库使用OpenCV库编写Java代码时,第一步是使用loadLibrary()加载OpenCV的本机库。如下所示加载OpenCV本机库。步骤2:实例化视频捕获类使用本教程前面提到的...
📅  最后修改于: 2020-11-23 03:48:23        🧑  作者: Mango
org.opencv.videoio包的VideoCapture类包含使用系统摄像机捕获视频的类和方法。让我们一步一步地学习如何做。步骤1:加载OpenCV本机库使用OpenCV库编写Java代码时,第一步是使用loadLibrary()加载OpenCV的本机库。如下所示加载OpenCV本机库。步骤2:实例化CascadeClassifier类包org.opencv.objdetect的Casca...
📅  最后修改于: 2020-11-23 03:48:44        🧑  作者: Mango
以下程序演示了如何使用系统相机检测面部并使用JavaFX窗口显示面部。例输出在执行程序时,您将获得以下输出。如果打开指定的路径,则可以看到相同的快照另存为jpg图像。...
📅  最后修改于: 2020-11-23 03:49:02        🧑  作者: Mango
您可以使用imgproc类的warpAffine()方法对图像执行仿射翻译。以下是此方法的语法-此方法接受以下参数-src-一个Mat对象,代表此操作的源(输入图像)。dst-表示此操作的目标(输出图像)的Mat对象。tranformMatrix-表示转换矩阵的Mat对象。尺寸-类型整数代表输出图像的大小的变量。例以下程序演示了如何在给定图像上应用仿射操作。假设下面是上述程序中指定的输入图像tra...
📅  最后修改于: 2020-11-23 03:49:19        🧑  作者: Mango
您可以使用imgproc类的warpAffine()方法对图像执行旋转操作。以下是此方法的语法-此方法接受以下参数-src-一个Mat对象,代表此操作的源(输入图像)。dst-表示此操作的目标(输出图像)的Mat对象。rotationMatrix-表示旋转矩阵的Mat对象。尺寸-类型整数代表输出图像的大小的变量。例以下程序演示了如何旋转图像。假设下面是上述程序中指定的输入图像transform_i...
📅  最后修改于: 2020-11-23 03:49:37        🧑  作者: Mango
您可以使用imgproc类的resize()方法对图像执行缩放。以下是此方法的语法。此方法接受以下参数-src-一个Mat对象,代表此操作的源(输入图像)。dst-表示此操作的目标(输出图像)的Mat对象。dsize-一个Size对象,代表输出图像的大小。fx-类型为double的变量,代表沿水平轴的比例因子。fy-类型为double的变量,代表沿垂直轴的比例因子。插值-表示插值方法的整数变量。例...