OpenCV学习日记-Java语言描述
文章平均质量分 80
学习OpenCV,使用Java语言描述,分享学习过程
Timeless小帅
将来成不成功不知道,我只知道现在努力过,拼搏过,就够了
展开
-
[OpenCV学习日记-java]-18-角点检测
角点检测在图像边缘中有一些特殊的像素点值得我们关注,那就是图像边缘的角点,这些角点更能反映出图像中对象的整体特征,基于角点周围的像素块生成特征描述可以更好的描述图像特征数据Harris与Shi-Tomasi 的计算角点响应公式Harris角点检测对输入图像进行 Harris 边界检测。输出是一幅浮点值图像,大小与输入图像大小相同,浮点值越高,表明越可能是特征角点(也可以对图像进行阈值化...原创 2020-02-09 18:05:45 · 604 阅读 · 0 评论 -
[OpenCV学习日记-java]-17-模板匹配
模板匹配在图像处理中,经常用于从衣服位置图像中根据预先定义好的模板图像来寻找与模板图像相同或者相似的图像模板匹配的Api函数matchTemplate(Mat image, Mat templ, Mat result, int method)image:输入图像,大小为: W * Htempl:模板图像,大小为:w * hresult:计算结果,大小为(W-w+1)*(H-h+1)...原创 2020-02-06 19:06:29 · 554 阅读 · 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 · 351 阅读 · 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 · 726 阅读 · 1 评论 -
[OpenCV学习日记-java]-14-轮廓分析
轮廓分析边界框获取边界框的api如下在这里插入代码片原创 2020-02-04 13:23:07 · 617 阅读 · 2 评论 -
[OpenCV学习日记-java]-13-轮廓发现与绘制
轮廓发现与绘制有时候,我们希望Canny边缘提取出来的图像是完整的轮廓,但是Canny出来的却是一些边缘的像素信息,并没有向我们提供完整的轮廓OpenCV中有一组轮廓发现与绘制的函数,能帮助我们发现轮廓与绘制轮廓轮廓发现图像的轮廓一般都有啥由一系列的像素点组成的,一般为二值图像,每一组轮廓都是一组像素点,从这些点还可以看出一条曲线上的其他各点,假设图像中有多个轮廓,则会生成多个轮廓描述的...原创 2020-01-30 13:15:22 · 1806 阅读 · 0 评论 -
[OpenCV学习日记-java]-12-霍夫变换
霍夫变换在获取图像边缘的基础上,对特定的几何形状边缘,如直线、圆,通过图形霍夫变换把图像从平面空间坐标转换到霍夫空间坐标。霍夫变换不仅能识别直线,也能够识别任何形状,常见的有圆形、椭圆形。霍夫直线通过求取霍夫空间的局部最大值方法得到空间坐标对应的参数方程中直线的两个参数,从而计算得到平面最表中直线的数目与位置返回极坐标的Api如下在这里插入代码片...原创 2020-01-25 19:34:36 · 501 阅读 · 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 · 1135 阅读 · 0 评论 -
[OpenCV学习日记-java]-10-Canny边缘检测
Canny边缘检测Canny边缘检测算法是一种对噪声比较敏感的边缘检测算法所以通常使用Canny检测之前,收先对图像进行降噪一个完整的Canny边缘检测有以下几个步骤组成高斯模糊:完成噪声抑制灰度转换:在灰度图像上计算梯度值计算梯度:使用Sobel/Scharr非最大信号抑制:在梯度图像上寻找局部最大轮廓高低阈值连接:吧边缘像素连接为线段,形成完整边缘轮廓Canny边缘检测是...原创 2020-01-23 14:16:33 · 707 阅读 · 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 · 842 阅读 · 0 评论 -
[OpenCV学习日记-java]-08-阈值化和阈值
阈值化和阈值阈值化和阈值就是对图像上的像素数据进行分类,也就是我们常说的图像分割Opencv提供了阈值化分割方法,下面来介绍threshold(Mat src, Mat dst, double thresh, double maxval, int type)src:输入图像,一般为8位通道的灰度图像dst:输出图像 类型与输入图像相同thresh:阈值的值 Tmaxval:最大灰...原创 2020-01-21 19:38:03 · 3155 阅读 · 0 评论 -
[OpenCV学习日记-java]-07-形态学操作
形态学操作OpenCV中提供了几个非常有用的图像形态学操作Api,其工作原理与卷积类似,但是不同的是我们称卷积为结构元素,计算方式也是有算术运算改为简单几何运算与逻辑运算,而且可以将结构元素定义为任意结构。最常见的结构元素有矩形、线性、圆形、狮子交叉性等。OpenCV支持的图像形态学操作主要有以下几种:膨胀腐蚀开操作比操作黑帽顶帽形态学梯度形态学操作方法morphology...原创 2020-01-20 18:30:58 · 732 阅读 · 0 评论 -
[OpenCV学习日记-java]-06-统计排序滤波
统计排序滤波之前介绍的模糊 是 线型滤波现在我们就要说非线性滤波这里就介绍 几种他们分别是中值滤波最大值滤波(也叫作膨胀)最小值滤波(也叫作腐蚀)中值滤波中值滤波的API函数:medianBlur(Mat src, Mat dst, int ksize) src:输入如下dst:输出图像ksize:卷积核大小注意这里的ksize 为单数下面通过此代码来演...原创 2020-01-20 16:49:36 · 3074 阅读 · 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 · 830 阅读 · 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 · 1890 阅读 · 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_64FC4int [] get(int row,int col,f...原创 2020-01-18 15:08:32 · 4860 阅读 · 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 · 2199 阅读 · 1 评论 -
[OpenCV学习日记-java]-01-环境搭建与显示图片
环境搭建与显示图片配置环境首先打开OpenCV的官网: https://opencv.org这里我进行了详细的标注第一步:打开官网第二步:找到最新版本下载第三步:解压第四步:创建一个java项目创建一个java项目吧 .lib 文件考入到java项目根目录 也就是classpath导入jar包这样环境就搭建完毕了第一个OpenCV程序package pac...原创 2020-01-17 23:34:29 · 740 阅读 · 0 评论 -
[OpenCV学习日记-java]-引言
引言什么是OpenCVOpenCV是一个开源的计算机视觉框架,他支持java,c++,python等编程语言适合什么样的人阅读本专栏学习图像处理的爱好者在校大学生图像处理行业的人本专栏都有什么本专栏主要介绍OpenCV图像处理核心模块图像处理特征提取对象检测后期更新其他编程语言版本...原创 2020-01-17 23:18:42 · 568 阅读 · 0 评论