自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (5)
  • 收藏
  • 关注

原创 图像纹理——灰度共生矩阵

1.灰度共生矩阵生成原理灰度共生矩阵(GLDM)的统计方法是20世纪70年代初由R.Haralick等人提出的,它是在假定图像中各像素间的空间分布关系包含了图像纹理信息的前提下,提出的具有广泛性的纹理分析方法。度共生矩阵被定义为从灰度为i的像素点出发,离开某个固定位置(相隔距离为d,方位为)的点上灰度值为的概率,即,所有估计的值可以表示成一个矩阵的形式,以此被称为灰度共生矩阵。对于纹理变化缓慢的图...

2018-06-13 14:22:35 1006

原创 opencv中cuda模块的数据结构简易用法

/*-------------------------------------------------------------------------里面比较重要的是 InputArray;getGpuMat();PtrStepSzb; 这么几个数据类型和函数--------------------------------------------------------------...

2018-06-12 15:07:05 1302

原创 OpenCV 3.x 源码结构简介

OpenCV 3.x 与之前版本的不同1)以C++ 风格API为主,C 风格的API 最终可能会取消。2)C++ API 更加简洁,引入很多C++面向对象的特性3) 算法都将继承自 cv::Algorithm 接口。4) 模块分类细化,意义和功能明显。源代码结构1)3rdparty/,OpenCV  依赖的第三方库,比如:ffmpeg,jpg、png、tiff等。2)apps/,包含进行 haar...

2018-06-11 09:22:17 864

原创 OpenCV_CUDA 中GpuMat数据结构

一 、GUPMat 概述     在使用OpenCV_CUDA 编程中会遇到GpuMat数据结构,该数据结构是GPU内存容器。         在GUP中,类GpuMat是存储2D数据。类GpuMat 的特点:(1)它的数据不是连续的,在每一行末尾额外填充数据;(2)它包含下面数据项:     --data: GPU内存指针数据开始;     --step:距离之间的数据是两个连续的行;     ...

2018-06-05 17:57:24 4776 2

原创 我的CUDA学习之旅5——OTSU二值算法(最大类间方差法、大津法)CUDA实现

引言最近在做医疗设备相关的项目,故在项目中大量用到了各类图像分割的算法,为了在图像中分割出特定目标,用到的算法可以有很多,比如阈值分割,多通道分割,边缘分割以及一些前沿的组合分割。而对大多数图像来说,分割的一大难点是将待识别的目标与背景分离,其中一种有效简单的方法就是二值化(并不都有效),本博客试着将二值化算法中的OTSU算法进行cuda改写。任务要求输入一张8bit的灰度图,通过CUDA在GPU...

2018-06-05 14:38:13 1269 3

原创 我的CUDA学习之旅4——Sobel算子图像边缘检测CUDA实现

引言关于图像边缘检测,记得刚开始接触图像处理时,第一个自己实现的程序是通过笔记本摄像头采集图像,利用OpenCV自带的算法库进行Canny算子边缘检测,那时候当看到程序运行后,视频窗口实时显示经Canny算子边缘分割后的图像,觉得十分有科技感,后来慢慢开始自己写边缘检测的源代码,本博客以Sobel算子为例,将边缘检测通过CUDA实现。任务要求输入一张图片,将其转为灰度图后,通过CUDA...

2018-06-05 14:37:12 1053 5

原创 我的CUDA学习之旅3——图像灰度化、灰度直方图统计

引言在大部分的图像处理程序中,其中必不可少的一步就是对传入的彩图进行灰度处理,将三个通道的RGB图片转化为单通道的Gray图,而对于灰度图进行直方图统计同样是观察检测图像特征的常用方法。在OpenCV中已经有成熟的封装函数进行上述功能的实现,本文主要讲述CUDA实现,加快对大图像的处理速度。任务要求输入一张彩色图片,通过CUDA将其转换为灰度图,并对灰度图进行灰度直方图统计。实现思路关于彩色图片灰...

2018-06-05 14:36:45 900

原创 我的CUDA学习之旅2——图像形态学腐蚀、膨胀CUDA实现

引言由于上两周杂七杂八的事情比较多加上自己写的算法有些问题,一直改bug。。。。没时间继续写博客,今天开始补上博客。从这篇文章起,开始将一些较为典型的OpenCV算法通过CUDA进行实现,本文实现的为图像处理中最为常见的形态学腐蚀以及膨胀,由于本文目的在于算法移植后的验证,故在图片的选择上用小图像作为输入的示例图像,有不当之处欢迎评论或私信~任务要求输入一张图片,将其转为灰度图后,通过...

2018-06-05 14:36:14 1496

原创 我的CUDA学习之旅1——大图像分块处理程序(包括求均值,最大值等)

引言在我的第一篇文章中我简单介绍了CUDA以及我的一些个人学习见解,在本文中我将开始正式开始CUDA实践之旅,众做周知CUDA目前应用的领域十分广泛,它能把一些普通的CPU代码提速几十倍甚至几百倍。在本人所从事的图像处理领域,在一些大图像的处理上(4K以上图像),仅仅依靠CPU进行计算已经完全无法满足工程项目所要求的运行时间,这时候我们就需要利用CUDA对代码进行加速。本文以一个8000*1000...

2018-06-05 14:35:33 838

原创 CUDA atomic原子操作

CUDA的原子操作可以理解为对一个变量进行“读取-修改-写入”这三个操作的一个最小单位的执行过程,这个执行过程不能够再分解为更小的部分,在它执行过程中,不允许其他并行线程对该变量进行读取和写入的操作。基于这个机制,原子操作实现了对在多个线程间共享的变量的互斥保护,确保任何一次对变量的操作的结果的正确性。原子操作确保了在多个并行线程间共享的内存的读写保护,每次只能有一个线程对该变量进行读写操作,一个...

2018-06-04 20:09:48 176

原创 CUDA页锁定内存(Pinned Memory)

对CUDA架构而言,主机端的内存被分为两种,一种是可分页内存(pageable memroy)和页锁定内存(page-lock或 pinned)。可分页内存是由操作系统API malloc()在主机上分配的,页锁定内存是由CUDA函数cudaHostAlloc()在主机内存上分配的,页锁定内存的重要属性是主机的操作系统将不会对这块内存进行分页和交换操作,确保该内存始终驻留在物理内存中。GPU知道页...

2018-06-04 20:05:46 2306

原创 CUDA流(Stream)

CUDA流表示一个GPU操作队列,该队列中的操作将以添加到流中的先后顺序而依次执行。可以将一个流看做是GPU上的一个任务,不同任务可以并行执行。使用CUDA流,首先要选择一个支持设备重叠(Device Overlap)功能的设备,支持设备重叠功能的GPU能够在执行一个CUDA核函数的同时,还能在主机和设备之间执行复制数据操作。支持重叠功能的设备的这一特性很重要,可以在一定程度上提升GPU程序的执行...

2018-06-04 19:54:53 285

原创 CUDA多个流的使用

CUDA中使用多个流并行执行数据复制和核函数运算可以进一步提高计算性能。以下程序使用2个流执行运算:[cpp] view plain copy#include "cuda_runtime.h"      #include <iostream>    #include <stdio.h>      #include <math.h>        #define ...

2018-06-04 19:49:44 1084

原创 显卡、显卡驱动、显存、GPU、CUDA、cuDNN

显卡Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的数字信号转换成模拟信号让显示器显示出来。显卡是计算机的标配之一,计算机要显示图像就必须安装显卡。普通计算机的显卡一般是集成在主板上的。显卡驱动显卡驱动是显卡跟计算机连接的桥梁,可以让计算机识别到GPU硬件,是必须正确安装...

2018-06-04 19:48:30 334

原创 opencv中常用cuda函数总结

bitwise_and()bitwise_not()bitwise_or()bitwise_xor()compare()divide():除exp()log()max()min()multiply()threshold():二值化,但要指定设定阈值blendLinear():两幅图片的线形混合calcHist()createBoxFilter ():创建一个规范化的2D...

2018-06-01 14:48:15 5405

halcon常用函数.pdf

halcon入门常用函数

2021-07-23

亚像素模板匹配—计算图像之间的亚像素偏差

计算出两幅图像之间的亚像素对位的精度,通过模板匹配得到评分Mat,计算出在Mat上最大匹配的点,再最大匹配点周围,利用评分,找出亚像素的off,实际测试精度在0.02像素。

2020-11-30

去雾算法——参考何凯明博士的论文,自己写的代码

何凯明博士的去雾算法,是一大经典,此代码复现何博士的论文,达到的优秀的去雾效果,在现实中,应用场景还挺多的。。。

2020-09-30

基于opencv的轮廓匹配算法

利用轮廓,求图像间的offset,图像库是opencv的代码,利用canny求出轮廓,然后找出两幅图的轮廓offset,即得原图的offset。

2020-09-27

基于opencv的图像旋转匹配

可以求出图像之间的旋转角,精度和图像大小成正比,利用频域做的,不是单纯的旋转0.1°,匹配一下,再转一下,再匹配一下。

2020-09-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除