Upupup6
这个作者很懒,什么都没留下…
展开
-
数字图像处理:(2)一阶微分和二阶微分在数字图像处理中的应用
1、微分定义2、微分性质微分是对函数局部变化率的一种表示。在图像处理中有基于一阶微分和二阶微分的锐化空间滤波器(图像锐化是增强图像的突变部分),其实一阶微分和二阶微分算子都可以得到图像的边缘,只是效果不一样。一阶微分的性质:(1)在恒定的灰度区域,图像的微分值为0.(灰度值没有发生变换,自然微分为0) (2)在灰度台阶或斜坡起点处微分值不为0.(台阶是,灰度值的突变变化较大;斜坡则是灰度值变化较缓慢;灰度值发生了变化,微分值不为0) (3)沿着斜坡的微分值不为0. 使用..原创 2021-07-29 22:57:34 · 4282 阅读 · 0 评论 -
数字图像处理:图像就是函数的解读
计算机视觉旨在从图像中提取有用的信息,这已经被证实是一个极具挑战性的任务。那么图像是什么?或者说我们把图像看作什么?有人说图像就是一张图片,一个场景,一个矩形(rectangle),一个矩阵(matrix)。我们先看一个图像实例:这是一张黑白图像,也就是常说的灰度图。更多的图像是彩色的RGB图像。灰度图处理起来更加简单方便,因此这里使用灰度图像,重在理解。我们把这幅图像加上坐标刻度,如下图所示:放到坐标系中后,我们能把一副图像看作是一个二维函数,定义成或者。任何一对空间坐标(x, y)处转载 2021-07-29 22:15:03 · 686 阅读 · 0 评论 -
数字图像处理:blob分析、阈值分割
1.引言 所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同,简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提.同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准。 ...原创 2021-07-25 21:38:26 · 3946 阅读 · 1 评论 -
数字图像处理:边缘检测(Edge detection)
转载自:https://zhuanlan.zhihu.com/p/59640437觉得写得通俗易懂,要是每个人的博客都这么人性化。。。。写在前面:本文篇幅较长,用了大量图与公式帮助大家深入理解各种边缘检测算子,希望大家能看完哈,测试编译器为Matlab,作为入门计算机视觉(Computer vision)领域来说,Matlab是一款非常友好且简单的工具,其中自带各种先进的库函数,实现起来非常快速,偏向于实验性质的应用。好了话不多说,来和笔者一起看一下今天的主题-边缘检测。一.前言首先..转载 2021-08-13 15:56:46 · 1756 阅读 · 0 评论 -
相机标定:(1)相机模型
之前在进行标定时只是简单的会使用,调用OpenCV里边的函数,完成标定即可。并没有做过多深入的理解,今天趁着course学习把标定详细的记录一下,以下完全是个人理解如果有不对的地方欢迎批评指正,毕竟一切能带我飞的人,我都很感激。----------------------------正文----------------------------0、前言要想理解相机的标定过程,我们前期的准备工作就需要了解一下相机的模型,相机的成像原理,数码相机图像拍摄的过程实际上是一个光学成像的过程。相机的成像过程原创 2021-08-11 16:50:27 · 902 阅读 · 0 评论 -
数字图像处理:空间相关与卷积操作
滤波实际上是信号处理的一个概念,图像可以看成是一个二维信号,其中像素点灰度值的高低代表信号的强弱。高频指的是图像中变化剧烈的部分;低频图像中变化缓慢、平坦的部分。根据图像高低频特性,设置高通和低通滤波器,高通滤波器可以检测图像中尖锐、变化明显的地方;低通滤波器可以让图形变的平滑(就是模糊了,看不清楚了),消除噪声干扰。PS:低通滤波的平滑去噪,高通滤波的边缘检测。图像滤波的函数方法:线性滤波:方框滤波、均值滤波、高斯滤波。非线性滤波:中值滤波、双边滤波。...原创 2021-07-22 16:52:35 · 4358 阅读 · 6 评论 -
1数字图像获取:1.1图像数字化
图像数字化是数字图像处理的物理技术。图像数字化原理:图像数字化是将一幅画面转换成计算机能处理的一种形式-------数字图像的过程。具体来说就是把一幅图像分割成如图的一个个小区域(像元或者像素),并将各个小区域的灰度用整数来表示(即这些单个的像素可以用一个量化的数字来表示),由这些数字可以形成一幅点阵式的数字图像。每一个像素的属性包含位置和灰度(或者颜色)即某种量化值,这样的两个属...原创 2020-04-10 10:34:34 · 1984 阅读 · 0 评论 -
数字图像处理:(1)图像梯度以及算子应用
1、数学意义上的梯度在理解图像梯度是什么的时候,我们首先要回忆一下以前学习过得梯度是什么?见链接:https://blog.youkuaiyun.com/m0_37957160/article/details/113678344一句话梯度是一个向量,梯度向量就像一个指路明灯一样,他永远指向方向导数变化最大的那个方向,那么我的这个梯度模的大小就等于方向导数最大的那个大小。在数学上,梯度的本意是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最原创 2021-07-29 22:53:40 · 5010 阅读 · 0 评论 -
1数字图像获取:1.2图像灰度直方图
----------1图像灰度直方图的概念------灰度直方图是反映一幅图像中各灰度级像素出现的频率与灰度级的关系。以灰度级为横坐标,频率为纵坐标绘制频率同灰度级的关系图就是一副灰度图像的直方图。他是一个图像的重要特征,反映了图像分布灰度的状况。以下是一幅图像对应的灰度直方图:在这个灰度直方图里面,每一个灰度级出现的频率计算式为: ...原创 2020-04-10 11:13:14 · 2125 阅读 · 0 评论 -
相机标定:(2)内\外参矩阵和畸变矩阵
由(1)我们知道相机模型:https://blog.youkuaiyun.com/m0_37957160/article/details/119607249标定一共分为两个部分:(1)在进行精度较高的测量时,需要校正畸变即图像的畸变矫正,需要进行相机标定!(是自身的)(2)相机和机器人之间标定 =手眼标定!0、标定的意义 无论是在图像测量或者机器视觉应用中,摄像机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响摄像机工作产生结果的准确性。因此,做好摄像机标定是做好后续工作....原创 2021-08-12 00:38:33 · 764 阅读 · 0 评论 -
FT(Fourier Transform)在滤波上的应用
数学真的是一个神奇的科学,美妙之处无法言语形容。傅里叶变换的推导见博客:对于非周期的函数就是周期T趋于0,将一般非周期的函数写作傅里叶级数的形式:其中:就是FT。其中:就是IFT。傅里叶变换其中一个最主要的应用就是滤波上,关于滤波最主要的就是首选要确定他的频率是什么他的频谱是什么,然后找到我们不想要的这部分把它过滤掉就行了。下面举个例子:0、我们简单的图形:(1)函数形式是(2)函数形式是函数形式(3)函数形式是放大看一下:函数形式..原创 2021-09-01 15:12:51 · 414 阅读 · 0 评论 -
1数字图像获取:1.3图像处理算法的形式
图像处理算法就是利用数学原理与计算机程序对数字图像进行处理的基础。局部处理的例子:对一幅图像采用3x3模板进行卷积运算,用3x3的模板在该图像上进行扫描式的平移,每一个像素的卷积计算值是由并仅由该像素本身和该像素的8邻域像素的计算总和。输出值仅与输入像素值有关。 ...原创 2020-04-10 12:36:39 · 385 阅读 · 0 评论 -
数字图像处理:基本操作(灰度化、二值化)
图像(各种图形和影像的总称):图像是人类视觉的基础,是自然景物的客观反映,是人类认识世界和人类本身的重要源泉。“图”是物体反射或透射光的分布,“像“是人的视觉系统所接受的图在人脑中所形成的印象或认识,照片、绘画、剪贴画、地图、书法作品、手写汉学、传真、卫星云图、影视画面、X光片、脑电图、心电图等都是图像。数字图像是由扫描仪、摄像机等输入设备捕捉实际的画面产生的图像。由像素点阵构成的位图。计算机中的图像从处理方式上可以分为位图和矢量图。-------------------上述来自百科解读在图原创 2021-07-18 14:52:38 · 3848 阅读 · 1 评论 -
数字图像处理:(3)一阶微分算子在图像处理中的应用
1、数学基础函数一阶导数对应的微分称为一阶微分;一阶微分的微分称为二阶微分;二阶微分及以上的微分称为高阶微分;首先,图像是离散的数据,若求其导数就要用差分的方法,常用的差分方法是前向差分(forward differencing)与中心差分(central differencing)。一阶导本质上求的是斜率,二阶导求的是拐点。2、图像微分知识:一阶导数:图像梯度:二阶导数:3、滤波器平滑滤波器(低通滤波器),是用来平滑图像和抑制噪声的;而锐化空间滤...原创 2021-07-30 15:12:25 · 4350 阅读 · 0 评论 -
1.数字图像获取:1.4图像的数据结构与特征
图像的数据结构和文件格式是指数字图像在计算机中存储的组织方式,是计算机算法应用于图像处理的数据基础。---------------数据结构------------图像的数据结构是指图像像素灰度值的存储方式,常用方式是将图像各像素灰度值用一维或二维数组相应的各元素加以存储。此外还有其他存储方式:1组合方式、2比特面方式、3分层结构、4树结构、5多重图像数据存储 优点是:...原创 2020-04-10 16:00:35 · 1211 阅读 · 0 评论 -
数字图像处理:(4)二阶微分在数字图像处理中的应用
使用二阶微分进行图像锐化;二阶微分,是一阶微分的导数,和一阶微分相对应,二阶微分的性质:(1)在恒定区域二阶微分值为0; (2)在灰度台阶或斜坡的起点处微分值不为0; (3)沿着斜坡的微分值为0;从以上图像灰度的一阶和二阶微分的性质可以看出,在灰度值变化的地方,一阶微分和二阶微分的值都不为0;在灰度恒定的地方,微分值都为0.也就是说,不论是使用一阶微分还是二阶微分都可以得到图像灰度的变化值。...原创 2021-07-30 16:17:59 · 1854 阅读 · 0 评论 -
数字图像处理:滤波
1、中值滤波2、均值滤波3、双边滤波--------------下边是基于卷积核滤波的操作:在图像中滤波的一般操作就是:有一个原图。 有一个滤波核。(其实就是一个滑动窗口) 就是结果图。PS:滤波的效果怎么样,完全取决于你这个滤波核是怎样的,就是原图像在这个滑动小窗口里边是怎么操作的。就是滤波核在原图像进行从左到右、从上到下的滑动操作。4、高斯滤波4.1、高斯分布:正态分布(Normal distribution),也称“常态分布”,又名高斯分布(.原创 2021-08-04 15:51:19 · 1065 阅读 · 1 评论 -
数字图像处理:(5)非微分算子在数字图像处理中的应用
本节是非微分边缘检测算子——Canny算子边缘是图像中灰度有阶跃变化,或屋顶变化的像素的结合。1、 Canny算子边缘检测基本原理 该算子功能比前面几种都要好,但是它实现起来较为麻烦,Canny算子是一个具有滤波,增强,检测的多阶段的优化算子,在进行处理前,Canny算子先利用高斯平滑滤波器来平滑图像以除去噪声,Canny分割算法采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny算子还将经过一个非极大值抑制的过程,最后Canny算子还采用两个阈值来连...原创 2021-08-04 14:52:01 · 278 阅读 · 3 评论 -
halcon与QT联合:(5.2)瓶盖检测以及QT界面搭建
在上一个博客5.1中只是做了一个简单的界面,下面我们将在界面上添加按钮、添加资源、画图(包括画圆、画矩形)、管理参数(参数的自动加载与保存)1、添加按钮、添加资源(类似于软件界面上方菜单栏的设置)1.1添加那妞PS:输入后要回车(不然添加不上)顺便把右边对应的属性下:QObject下的objectName改一下:分别改为drawCircle、drawRectangle、drawRectangle2。下面操作下边对应的Action Editor:还可以右键转到槽:...原创 2021-07-26 16:43:29 · 1097 阅读 · 2 评论 -
Halcon与QT的联合编程(1)
1、halcon代码的封装在对代码进行封装的时候,你一定要考虑你的输入输出是什么?以输入:图像输出:点、矩形、2个数字。(点和矩形是为了展示给客户看的)步骤:(1)首先选中要封装的代码,右键创建一个新函数,进入如下界面:一般文档里面你也可以进行描述一下信息。初学者暂时只需要选择本地程序函数即可,下边的库函数和函数文件,就是自己定义的可以一直用他一直存在。但是本地函数他是本地的,只存在这个项目中。图中箭头的进出分别表示参数的输入与输出。(2)点击应用就会完成函数的封装。原创 2021-07-23 23:17:17 · 7282 阅读 · 15 评论 -
halcon与QT联合:(5.1)瓶盖检测以及QT界面搭建
halcon实现瓶盖检测与定位代码:dev_close_window()dev_open_window(0, 0, 1024, 1024, 'black', WindowHandle)list_image_files('C:/Users/TIMI/Desktop/picture/circle', 'default', [], ImageFiles)for J := 1 to 4 by 1 *read image read_image(halconImage, ImageFil原创 2021-07-25 21:48:01 · 928 阅读 · 0 评论 -
Halcon与QT的联合编程(2)
在(1)的基础上继续对halcon与QT的联合编程项目进行扩展。1、添加类的两种方法:1.1、添加C++类1.2、添加设计师界面类QT的设计类他是有界面的。如果有些参数需要修改的话可以在这个界面上进行修改。本案例参数比较少选择添加C+类即可。---------------------------------添加C+类------------------1、添加这个因为是写在MainWindow下面,代码比较多,所以把图像处理单独写在一个类里面。Details:暂.原创 2021-07-24 16:36:49 · 870 阅读 · 2 评论 -
halcon与QT联合:(5.4)瓶盖检测以及QT界面搭建
接着上篇博客的鼠标滚轮事件之后,本次要完成的是基于结构体的参数管理以及如何让参数与界面进行关联。---------------------------------下面实现的是参数管理----------------------------------PS:如果你是基于结构体的变量管理:个人习惯:在写结构体时单独去写一个文件,起名为公共部分,(这个部分就可以把需要用到的结构体或者define变量,就是每一个成员都可能会用到的变量都可以放在这里 )添加---->Add New---原创 2021-08-03 15:59:36 · 1222 阅读 · 1 评论 -
halcon与QT联合:(5.3)瓶盖检测以及QT界面搭建
接着上篇博客的添加资源之后,本次要实现的是鼠标的滚轮功能图片的缩放。在QT代码中中文乱码的处理方法:qDebuge()<<QString::fromLocal8Bit("这个图像的Row坐标:=")<<Row[0].D();一般halcon里边里边的数据Row我们会把它当做tuple,数组,他有可能不是一个值,他有可能是多个值,所以要默认只有一个数的时候,使用0下标。.D就是你把halcon里边的数据拿出来的话,需要进行转化。这里是转化为double。下面是..原创 2021-07-28 14:44:47 · 578 阅读 · 0 评论 -
halcon:(4)halcon中XLD的概念与应用----汽车引擎盖圆孔检测
xld(extended Line Descriptions):扩展线的描述。在halcon中经常会用到的两个概念:1、region简单的理解区域region,就是某种具有结构体性质的二值图,正常像素再图像放大后你看到的是一个个的小方块,所有在图像都会沿着像素单位(方块)走。2、xld亚像素轮廓:是一系列有序的控制点集合是halcon中自己通过计算得到的点组成的轮廓,比region更为准确。下图来直观的看一下region和xld,在图像上表现的不同:这个是region,它是用每个小方块(原创 2021-07-17 17:18:41 · 1451 阅读 · 0 评论 -
Halcon:(2)电路板检测实验
实验原图如下:代码段:*读图read_image(Images,'C:/Users/TIMI/Desktop/1.png')*3通道转为单通道decompose3(Images,ImagesR,ImageG,ImagesB)*二值化threshold(ImagesR,BrightImage,134,242)*找到的是明亮的区域,明亮的区域是比较完整的,需要将其转化为特定的形状,此处装化为矩形*区域转为特定形状*1、最小外接矩形*smallest_rectangle2(Br..原创 2021-07-14 23:45:24 · 893 阅读 · 0 评论 -
Halcon:(3)铝板检测与角点坐标计算
如下图所示我们要检测到图片中的铝板,并计算出铝板左下角的角点坐标:在进行铝板检测的时候,我们发现铝板是高亮部分,但是旁边也会有高亮部分的边缘点的干扰,我么需要把那些干扰点给去掉,角点坐标的公式推导过程见:https://blog.youkuaiyun.com/m0_37957160/article/details/118711482?spm=1001.2014.3001.5501代码部分:read_image(LvbanImage,'C:/Users/TIMI/Desktop/picture/原创 2021-07-15 18:33:23 · 1044 阅读 · 4 评论 -
coco格式的数据集进行训练
前几篇博客一直在使用网上别人写好的代码,按照航拍数据打标的.json,.mask,.yaml,原图片,四个文件来制作数据集(我认为是自定义格式的数据集),最近跟一个热心的网友交流(超级感谢他)决定改为coco格式来训练。https://blog.youkuaiyun.com/heiheiya/article/details/82143967(别人的coco格式数据训练博客)此种数据格式训练不需要自动...原创 2018-11-09 16:42:30 · 7448 阅读 · 1 评论 -
解决Mask RCNN训练时GPU内存溢出问题
首先自己是个小白对于如何使用GPU跑程序这个学习了一下:(1)使用的是putty,安装了Anaconda这个IDE环境,用的conda install tensorflow-gpu安装的GPU版本tf,之前只是安装了tf并没有选择GPU版本。安装完GPU版本的tf,可以进入python环境导入import tensorflow as tf 进行测试一下,如果没有报错即为成功。(2)并在自己...原创 2018-09-18 15:14:42 · 8889 阅读 · 2 评论 -
记录Mask RCNN调整预测网格 font大小
(1)首先找到visualize.py,进入plot_overlaps这个函数。修改如下:原创 2019-03-14 17:30:04 · 468 阅读 · 0 评论 -
解决Mask RCNN自己航拍数据集训练的问题
本片博客主要记录解决的一个问题: 承接上篇文章中最后列出的程序代码问题,今天终于解决了。 Q:对于自己的同一个图片,比如DSC00083.jpg,我用opencv读取image.shape,结果如下:同一个图片再用skimage读取image.shape就会出现问题,如下:经查看图片属性与其他图片属性做对比,找到原因:参照Github上的讲解方式,将代码...原创 2018-08-29 21:12:21 · 1224 阅读 · 4 评论 -
Mask Rcnn训练自己的航拍数据集
最近想利用Mask Rcnn训练自己的航拍数据(数据来源:自己采集。飞行高度:200m,图片大小WxH=6000x4000),在进行自己的航拍图片训练时也与其他同学进行交流,他们一般进行识别的是一类物体,而且图片不是非常大,基于他们都是在pycharm上能把自己的数据集训练成功。到目前为止我还一直在坚持用jupyter notebook,至今出现了许多问题,目前仍在调试中:(本人已卡在...原创 2018-08-26 16:13:23 · 5457 阅读 · 17 评论 -
落地项目法兰管道检测:显示管道法线,对法兰圆面进行坐标定位
#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL);//VTK_MODULE_INIT(vtkInteractionStyle);#include "stdafx.h"#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#in...原创 2019-10-24 09:06:58 · 237 阅读 · 1 评论 -
求取质心坐标
#include "stdafx.h"//#include <vtkAutoInit.h>//VTK_MODULE_INIT(vtkRenderingOpenGL2)#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/filters/statistical_ou...原创 2019-10-24 09:04:26 · 523 阅读 · 0 评论 -
落地项目基于VFH特征求取,识别法兰管道
//头文件 vfh.h// 求点云文件的VFH特征描述子#include <pcl/features/vfh.h>#include <pcl/features/normal_3d.h>//法线特征#include<fstream>#include<iostream>using namespace std;pcl::PointClou...原创 2019-10-24 08:34:27 · 164 阅读 · 0 评论 -
使用VFH描述符进行聚类识别和6自由度姿态估计(大场景下点云数据的管道识别)
//#include <pcl/point_types.h>//#include <pcl/point_cloud.h>//#include <pcl/console/parse.h>//#include <pcl/console/print.h>//#include <pcl/io/pcd_io.h>//#include &...原创 2019-10-24 08:29:14 · 257 阅读 · 0 评论 -
基于VFH特征的聚类识别
//#include <vtkAutoInit.h>//VTK_MODULE_INIT(vtkRenderingOpenGL);#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include<pcl/visualization/pcl_plotter.h> #include &...原创 2019-10-24 08:20:01 · 305 阅读 · 0 评论