
OpenCV学习日记-Java语言描述
文章平均质量分 80
学习OpenCV,使用Java语言描述,分享学习过程
Timeless小帅
将来成不成功不知道,我只知道现在努力过,拼搏过,就够了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[OpenCV学习日记-java]-18-角点检测
角点检测 在图像边缘中有一些特殊的像素点值得我们关注,那就是图像边缘的角点,这些角点更能反映出图像中对象的整体特征,基于角点周围的像素块生成特征描述可以更好的描述图像特征数据 Harris与Shi-Tomasi 的计算角点响应公式 Harris角点检测 对输入图像进行 Harris 边界检测。输出是一幅浮点值图像,大小与输入图像大小相同,浮点值越高,表明越可能是特征角点(也可以对图像进行阈值化...原创 2020-02-09 18:05:45 · 689 阅读 · 0 评论 -
[OpenCV学习日记-java]-17-模板匹配
模板匹配 在图像处理中,经常用于从衣服位置图像中根据预先定义好的模板图像来寻找与模板图像相同或者相似的图像 模板匹配的Api函数 matchTemplate(Mat image, Mat templ, Mat result, int method) image:输入图像,大小为: W * H templ:模板图像,大小为:w * h result:计算结果,大小为(W-w+1)*(H-h+1)...原创 2020-02-06 19:06:29 · 640 阅读 · 0 评论 -
[OpenCV学习日记-java]-16-直方图反向投影
直方图的反向投影 对一个输入图像完成直方图分布可能性替换,从而找到图像中直方图分布相似或者相同的对象区域 他的Api函数如下 calcBackProject(List<Mat> images, MatOfInt channels, Mat hist, Mat dst, MatOfFloat ranges, double scale) images:表示输入图像 channels:参...原创 2020-02-06 13:41:14 · 404 阅读 · 0 评论 -
[OpenCV学习日记-java]-15-图像直方图
图像直方图 图像直方图是图像的统计学特征 直方图的计算与显示 对图像进行统计,并且绘制他们各个灰度等级对应的直方图就可以的得到图像的直方图 计算直方图的api如下 calcHist(List<Mat> images, MatOfInt channels, Mat mask, Mat hist, MatOfInt histSize, MatOfFloat ranges) images...原创 2020-02-05 19:28:18 · 895 阅读 · 1 评论 -
[OpenCV学习日记-java]-14-轮廓分析
轮廓分析 边界框 获取边界框的api如下 在这里插入代码片原创 2020-02-04 13:23:07 · 716 阅读 · 2 评论 -
[OpenCV学习日记-java]-13-轮廓发现与绘制
轮廓发现与绘制 有时候,我们希望Canny边缘提取出来的图像是完整的轮廓,但是Canny出来的却是一些边缘的像素信息,并没有向我们提供完整的轮廓 OpenCV中有一组轮廓发现与绘制的函数,能帮助我们发现轮廓与绘制轮廓 轮廓发现 图像的轮廓一般都有啥由一系列的像素点组成的,一般为二值图像,每一组轮廓都是一组像素点,从这些点还可以看出一条曲线上的其他各点,假设图像中有多个轮廓,则会生成多个轮廓描述的...原创 2020-01-30 13:15:22 · 1876 阅读 · 0 评论 -
[OpenCV学习日记-java]-12-霍夫变换
霍夫变换 在获取图像边缘的基础上,对特定的几何形状边缘,如直线、圆,通过图形霍夫变换把图像从平面空间坐标转换到霍夫空间坐标。 霍夫变换不仅能识别直线,也能够识别任何形状,常见的有圆形、椭圆形。 霍夫直线 通过求取霍夫空间的局部最大值方法得到空间坐标对应的参数方程中直线的两个参数,从而计算得到平面最表中直线的数目与位置 返回极坐标的Api如下 在这里插入代码片 ...原创 2020-01-25 19:34:36 · 563 阅读 · 0 评论 -
[OpenCV学习日记-java]-11-图形以及文字绘制
图形以及文字绘制 Mat上绘制基本几何图形和文本,包括矩形,直线,圆,椭圆,还有文本文字 Point 点对象 就和绘图的点一样,两个点构造一条直线 Point pt1 = new Point(15,30);// pt1(15,30) 坐标 绘制直线 Api函数如下: line(Mat img, Point pt1, Point pt2, Scalar color) img:绘制图形到此Ma...原创 2020-01-24 11:51:52 · 1207 阅读 · 0 评论 -
[OpenCV学习日记-java]-10-Canny边缘检测
Canny边缘检测 Canny边缘检测算法是一种对噪声比较敏感的边缘检测算法 所以通常使用Canny检测之前,收先对图像进行降噪 一个完整的Canny边缘检测有以下几个步骤组成 高斯模糊:完成噪声抑制 灰度转换:在灰度图像上计算梯度值 计算梯度:使用Sobel/Scharr 非最大信号抑制:在梯度图像上寻找局部最大轮廓 高低阈值连接:吧边缘像素连接为线段,形成完整边缘轮廓 Canny边缘检测是...原创 2020-01-23 14:16:33 · 783 阅读 · 0 评论 -
[OpenCV学习日记-java]-09-梯度计算和拉普拉斯算子
梯度计算和拉普拉斯算子 计算机图像梯度是很多重要特征提取的关键步骤之一,OpenCV提供了两个非常重要的计算梯度函数Sobel与Scharr 对于图像边缘部分,梯度值会比较大,对于图像的平坦区域梯度值一般比较小 Sobel梯度 Sobel梯度算子可以计算X方向和Y方向Api如下: Sobel(Mat src, Mat dst, int ddepth, int dx, int dy) src:...原创 2020-01-23 12:05:18 · 904 阅读 · 0 评论 -
[OpenCV学习日记-java]-08-阈值化和阈值
阈值化和阈值 阈值化和阈值就是对图像上的像素数据进行分类,也就是我们常说的图像分割 Opencv提供了阈值化分割方法,下面来介绍 threshold(Mat src, Mat dst, double thresh, double maxval, int type) src:输入图像,一般为8位通道的灰度图像 dst:输出图像 类型与输入图像相同 thresh:阈值的值 T maxval:最大灰...原创 2020-01-21 19:38:03 · 3236 阅读 · 0 评论 -
[OpenCV学习日记-java]-07-形态学操作
形态学操作 OpenCV中提供了几个非常有用的图像形态学操作Api,其工作原理与卷积类似,但是不同的是我们称卷积为结构元素,计算方式也是有算术运算改为简单几何运算与逻辑运算,而且可以将结构元素定义为任意结构。最常见的结构元素有矩形、线性、圆形、狮子交叉性等。OpenCV支持的图像形态学操作主要有以下几种: 膨胀 腐蚀 开操作 比操作 黑帽 顶帽 形态学梯度 形态学操作方法 morphology...原创 2020-01-20 18:30:58 · 799 阅读 · 0 评论 -
[OpenCV学习日记-java]-06-统计排序滤波
统计排序滤波 之前介绍的模糊 是 线型滤波 现在我们就要说非线性滤波 这里就介绍 几种他们分别是 中值滤波 最大值滤波(也叫作膨胀) 最小值滤波(也叫作腐蚀) 中值滤波 中值滤波的API函数: medianBlur(Mat src, Mat dst, int ksize) src:输入如下 dst:输出图像 ksize:卷积核大小 注意这里的ksize 为单数 下面通过此代码来演...原创 2020-01-20 16:49:36 · 3171 阅读 · 0 评论 -
[OpenCV学习日记-java]-05-模糊
模糊 模糊主要应用就是降低噪声 例如颜色识别,如果不进行模糊操作,可能会误差很大 均值模糊 blur(Mat src, Mat dst, Size ksize) blur(Mat src, Mat dst, Size ksize, Point anchor) blur(Mat src, Mat dst, Size ksize, Point anchor, int borderType) sr...原创 2020-01-19 21:23:01 · 941 阅读 · 2 评论 -
[OpenCV学习日记-java]-04-Mat对象通道与算术操作
Mat对象通道操作 图像通道分离 实现代码如下 split(Mat m,List<Mat> mv)//通道分离 下面用一段代码展示 获取Mat对象的channels之后 如果通道数目大于1 那么就可以使用通道分离 //首先获取图像的通道数 宽度 和 高度 int channels = m1.channels(); if(channels>1){ List<Mat&...原创 2020-01-18 18:05:08 · 2077 阅读 · 3 评论 -
[OpenCV学习日记-java]-03-Mat对象像素操作
Mat对象像素操作 像素的算术与逻辑运算 像素读写 Mat的像素读写get与put方法支持一下几种图像类型 方法 支持类型 double[] get(int row,int col) 以下全部 int [] get(int row,int col,double[] data) CV_64FC1 ~ CV_64FC4 int [] get(int row,int col,f...原创 2020-01-18 15:08:32 · 5119 阅读 · 0 评论 -
[OpenCV学习日记-java]-02-Mat对象基本操作
Mat对象 Mat对象是OpenCV中用来存储图像信息的内存对象,当通过Imgcodecd.imread()方法读入一个图像文件时,就会返回一个Mat对象实例 读取与写入 读取 Imgcodecs.imread("C:\\test\\tx.jpg"); 他有两个重载的方法 public static Mat imread(String 文件名) ; public static Mat im...原创 2020-01-18 13:34:17 · 2338 阅读 · 1 评论 -
[OpenCV学习日记-java]-01-环境搭建与显示图片
环境搭建与显示图片 配置环境 首先打开OpenCV的官网: https://opencv.org 这里我进行了详细的标注 第一步:打开官网 第二步:找到最新版本下载 第三步:解压 第四步:创建一个java项目 创建一个java项目 吧 .lib 文件考入到java项目根目录 也就是classpath 导入jar包 这样环境就搭建完毕了 第一个OpenCV程序 package pac...原创 2020-01-17 23:34:29 · 796 阅读 · 0 评论 -
[OpenCV学习日记-java]-引言
引言 什么是OpenCV OpenCV是一个开源的计算机视觉框架,他支持java,c++,python等编程语言 适合什么样的人阅读本专栏 学习图像处理的爱好者 在校大学生 图像处理行业的人 本专栏都有什么 本专栏主要介绍OpenCV图像处理 核心模块 图像处理 特征提取 对象检测 后期更新其他编程语言版本 ...原创 2020-01-17 23:18:42 · 653 阅读 · 0 评论