opencv
文章平均质量分 84
墨城之左
形而上者谓之道,形而下者谓之器。
展开
-
OpenCV4.3 Java 编程入门:透明度与抠图
下面的代码,将原始图片从左到右,由完全透明到完全不透明,渐变!原创 2023-07-31 11:28:44 · 949 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:离散傅里叶变换
文章目录1 时域,频域,空间域2 傅里叶变换3 图像处理:频域增强4 傅里叶变换定理5 傅里叶变换特性6 dft() 函数1 时域,频域,空间域首先,需要知道什么是 定义域:定义域(domain of definition)指自变量 x 的取值范围,是函数三要素(定义域、值域、映射法则)之一,映射法则的作用对象。即,对于函数: y=f(x)y = f(x)y=f(x),自变量 x 的取值范围就是定义域!知道定义域的概念之后,时域,频域,空间域,也就好理解了:时域:以时间范围为定义域,自变原创 2022-05-01 10:03:18 · 1040 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:图像直方图
文章目录1 直方图的概念直方图计算:calcHist示例1 直方图的概念从数学上来说,图像直方图是描述图像的各个灰度级的统计特性,它是图像灰度值的函数,统计图像中各个灰度级出现的次数或频率。直方图横坐标是像素值,范围从 0 到 255,纵坐标表示图像中该像素值的个数。图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。直方图均衡化:是指通过某种灰度映射(如:非线性拉伸)使原始图像的原创 2022-04-26 10:17:54 · 1598 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:形态学滤波
文章目录1 形态学2 膨胀:dilate3 腐蚀:erode4 膨胀&腐蚀示例5 开运算、闭运算、形态学梯度、顶帽、黑帽1 形态学形态学最开始用于对动植物形态和结构的研究,而数学形态学是一门图像分析学科,是一门通过数学形态运算进行图像处理的技术。其基本的运算包括:二值腐蚀(erode)和膨胀(dilate)、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等。简单来说,形态学操作就是基于形状对图原创 2022-04-24 15:19:00 · 3099 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:图像滤波
文章目录1. 图像滤波2 空域滤波1. 图像滤波滤波(wave filtering)最开始应用于通信领域,是指滤除信号中特定波段频率的操作,是抑制和防止干扰的重要措施。例如,从雷达接收信号中,过滤掉测量误差和随机干扰,从而实现对飞机在每个时刻的位置、速度、加速度等的计算和预测。图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。对于数字图像信号,噪声表为或大或小的极值,这些极值通过加减作用原创 2022-04-24 11:32:39 · 3258 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:绘制基本图形
文章目录1 绘制直线2 绘制圆形3 绘制椭圆4 绘制多边5 绘制矩形6 绘制箭头7 绘制图标opencv 中使用 Point 在图像中定义2D点,使用 Scalar 表示颜色值。在 imgproc 模块中,提供了多种绘制基本图形的方法:circle() :绘制圆形ellipse():绘制椭圆line():绘制直线polylines():绘制多边形rectangle():绘制矩形arrowedLine() : 绘制箭头1 绘制直线方法定义: /** * 绘制两点之间的线原创 2022-04-23 17:45:25 · 2857 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:imgproc 模块
文章目录imgproc方法imgprocimgproc 是 image + process 的缩写,即图像处理,本模块包含很多复杂的图像处理方法,这些方法将图像作为一个整体,图像不仅仅是包含像素的数组,还包含很多的统计特征、形态特征、及物体特征等。imgproc 模块包含如下内容:线性和非线性的图像滤波;图像的几何变换其他( Miscellaneous )图像转换直方图相关结构分析和形状描述运动分析和对象跟踪特征检测目标检测等等org.opencv.imgprocorg.by原创 2022-04-23 13:04:09 · 3632 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:图像运算及 Core 组件中运算相关的方法
文章目录1 算术运算2 逻辑运算3 absdiff() : 矩阵差值的绝对值4 addWeighted():图像加权求和5 completeSymm():沿对角线复制6 convertScaleAbs() : 缩放并计算绝对值7 copyMakeBorder():绘制边框8 flip():图像翻转9 max():最大值10 min():最小值10 merge() & split()11 normalize() : 归一化图像运算是指以图像为单位进行的操作,对图像中的所有像素进行操作,具体的运算主原创 2022-04-20 18:02:46 · 1937 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:图片的亮度、对比度、及伽马矫正
文章目录1 计算公式2 对比度、亮度矫正3 伽马矫正图像亮度和对比度的调整操作,属于图像处理中比较简单的一种——点像素操作!1 计算公式点操作仅仅根据输入像素值,结合配置参数,来计算相应的输出像素值:这类算子(处理函数)包括亮度(brightness)和对比度(contrast)调整、颜色校正(colorcorrection)和变换(transformations)。最常用的点操作,如下例公式所示:对输入像素点值乘一个常数系数,再加上一个常数。其中参数 a 被称为增益(gain),常原创 2022-04-20 17:22:12 · 3176 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:灰度映射
文章目录1 灰度与灰度映射2 映射函数3 图像求反4 动态范围压缩5 阶梯量化一幅灰度图像的视觉效果取决于该图像中各个像素的灰度,灰度映射通过改变图像中所有或部分图像的灰度来达到改善图像视觉效果的目的!1 灰度与灰度映射“灰度”,顾名思义,即灰色的度数,或者灰色的等级。在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像,也就是单通道图像。这类图像通常显示为从最暗黑色到最亮 的白色的灰度。一般,像素值量化后用一个字节(8位)来表示,如果把黑-灰-白连续变化的灰度值量化为 256 个灰度原创 2022-04-19 13:33:04 · 3205 阅读 · 2 评论 -
OpenCV4.3 Java 编程入门:图片中像素的遍历与映射
文章目录1 像素与颜色空间2 图像在内存之中的存储方式3 通过 Mat.ptr() 方法遍历像素4 LUT : 查找表映射1 像素与颜色空间存储像素值需要指定颜色空间和数据类型,其中颜色空间是指一个给定的颜色,如何组合颜色元素,及各元素如何编码。最简单的颜色空间时灰度空间,只处理黑色和白色,对它们进行编码组合,便可以产生不同程度的灰色。对于彩色,则有多种不同类型的颜色空间,但不论哪种类型都是把颜色分成三个或四个基本元素,通过组合基本元素来表示和构成颜色空间。例如 RGB 颜色空间就是最常用的一种颜色原创 2022-04-19 09:15:59 · 1268 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门: HighGUI 窗口中使用滑块
文章目录1 opencv_highgui添加滑块:使用 createTrackbar 方法添加滑块:使用 JFrame1 opencv_highgui滑块 (TrackBar)是 OpenCV 动态调参时常用的便捷工具,它依附于窗口而存在。opencv 提供了支持添加窗口组件的方法,这些方法都在 cv 命名空间下,对应在 Java 项目中的 org.bytedeco.opencv.global.opencv_highgui 类中。该类中,封装了很多 cv 命名空间中的静态方法:添加滑块:使用原创 2022-04-18 14:19:34 · 1702 阅读 · 1 评论 -
OpenCV4.3 Java 编程入门:HighGUI 图像显示
文章目录1 HighGUI 类2 显示图像HighGUI 模块为高层 GUI 图形用户界面模块,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。例如 VideoCapture 视频类就出自 HighGUI 模块。HighGUI模块的设计目的是对 opencv 图像处理功能进行快速尝试并将结果可视化:创建和操作可以显示图像并“记住”其内容的窗口(无需处理来自操作系统的绘制事件);在窗口中添加轨迹栏,处理简单的鼠标事件以及键盘命令。1 HighGUI 类High原创 2022-04-17 19:13:48 · 2329 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:imgcodecs 模块、及图像的载入与输出
文章目录1. org.opencv.imgcodecs2. Imgcodes 方法3 图片读入4 图像输出1. org.opencv.imgcodecsimgcodecs = image + codec,由名称可知,肯定与图像的编解码有关,opencv 通过该模块,对各种格式类型的图片进行解码,载入并创建 生成对应的 Mat 对象,或者,将程序中的 Mat 对象,输出为指定格式的图片文件。2. Imgcodes 方法方法描述static boolean haveImageRead原创 2022-04-17 14:47:37 · 4258 阅读 · 1 评论 -
OpenCV4.3 Java 编程入门:Core 组件中的数据结构与方法
opencv javadoc1. java packages1.1 org.opencv.core核心功能模块,包括:OpenCV基本数据结构,动态数据结构,绘图函数,数组操作相关函数;辅助功能1.2 org.opencv.imgprocimgproc 是 Image 和 Process 两个单词的缩写组合,也就是图像处理模块。包含:线性和非线性的图像滤波;图像的几何变换其他图像变换直方图相关结构分析和形状描述运动分析和对象跟踪特征检测目标检测。2 Core原创 2022-04-17 10:44:55 · 1868 阅读 · 0 评论 -
OpenCV4.3 Java 编程入门:环境配置
文章目录JavaCPP 与 Bytedecopom.xml示例JavaCPP 与 BytedecoJavaCPP:JavaCPP提供了在Java中高效访问本地C++的方法。采用JNI技术实现,支持所有 Java 实现包括Android系统,Avian 和 RoboVM。该工具不仅可以生成 JNI 代码,还可以基于合适的 Java 接口文件直接构建原生库包装库文件(natvie wrapper libriary files),此外,JavaCPP 还可以自动解析 C/C++ 头文件,并生成所需的 Ja原创 2022-04-16 14:33:45 · 3849 阅读 · 0 评论