- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 Cuda实现直方图均衡化
Gpu实现直方图均衡化之前博客介绍过cpu版本的直方图均衡化算法原理与实现,在此基础上介绍下gpu版本实现直方图均衡化。Gpu版本的算法实现流程和cpu版本一致,也是分为如下几个步骤:① 统计每个灰度级像素个数② 计算累积概率密度函数③ 根据累积概率密度求灰度映射表④ 根据映射表计算映射后的灰度值与cpu的区别是上述步骤是以并行的方式计算的。统计每个灰度级像素个数创建共享内存对象数组temp, 用于统计每个block内灰度的个数。__syncthreads()同步所有线程,确保每个线程
2021-03-03 23:25:04
1042
1
原创 直方图均衡化原理与实现
直方图均衡化原理与实现直方图均衡化原理原理介绍计算步骤代码实现直方图均衡化是一种增强图像对比度常用的一种方式,主要思想是将图像的直方图分布映射为近似均匀分布,从而增强图像的对比度。直方图均衡化原理原理介绍对于一幅图像,我们用rrr 表示待处理的图像图像灰度级,假设rrr 的取值区间是[0,L−1][0, L-1][0,L−1], rrr 代表图像的256个灰度级。rrr满足如下关系式:s=T(r),0<r<L−1 s= T(r), 0<r<L-1s=T(r),0<
2021-03-03 23:03:15
2883
1
原创 C++ 回调函数的实现
回调函数实现回调函数介绍回调函数实现函数指针实现回调函数bind实现回调函数回调函数介绍什么是回调函数?官方解释是回调函数就是一个被作为参数传递的函数。一句话解释言简意赅,但也有点晦涩难懂,听完后依旧不知道如何使用回调函数,以及应该在什么业务场景下使用回调函数。所谓回调,就是模块A要通过模块B的某个函数b()完成一定的功能,但是函数b()自己无法实现全部功能,需要反过头来调用模块A中的某个函数a()来完成,这个a()就是回调函数。举个业务逻辑的例子:某个业务需求实现方式是:对象A和对象B都调用对象C
2021-02-03 23:32:33
645
原创 STL源码分析 -sList
STL源码分析 -sList概述介绍sList的节点-nodesList 的迭代器sList 的数据结构测试代码概述介绍之前博客介绍过List,List是个双向链表,同时STL中也提供了单向链表结构,本次主要介绍单向链表节点、迭代器和单向链表实现设计。sList的节点-node单向链表是由每一个节点组成的,每一个节点的职责就是寻找下一个节点对象和存储当前节点对象的值,因此单向链表的节点对象中需含有next对象的指针,和当前节点对象的值。 struct sListNodeBase { sList
2020-11-28 23:34:05
231
原创 Git常用命令整理
查看git版本 git –version 配置用户名和邮箱 git config --global user.name 用户名git config --global user.email 邮箱名
2020-10-07 22:26:29
111
原创 STL源码分析 -List
本节进行List的源码分析,主要介绍list的数据结构和迭代器对象,并且实现常用的链表接口,会进行demo验证自己实现的部分接口。1. List概述: 链表是一种线性表,但不会按照线性的顺序存储。链表每次插入和删除一个元素,只配置或者释放一个元素空间,对于任何位置的元素的插入或者删除,list永远是常量时间复杂度。1.1 List的节点-nodetemplate <class T>struct ListNode{ typedef ListNode...
2020-09-15 22:52:54
251
原创 STL 源码分析-Vector
最近在学习stl源码,想对经常使用的标准容器了解其底层实现原理,知其然知其所以然,虽然无法达到侯捷大师说的“源码底下,了无秘密”的境界,但是向源码学习,了解的会更加深入。本文章是笔者学习《stl 源码剖析》的学习笔记,因个人的水平有限,难免会有理解不当的地方。如有理解错误,欢迎指出改正。Vector描述Vector是一种序列式容器,与array非常相似,唯一的差别是空间运用的灵活性,array是静态空间,大小定义后就不能改变,vector是动态空间,它的内部机制会自行扩充空间以容纳新元素。Vect
2020-08-22 21:30:54
236
原创 Tensorflow2.0-GPU安装教程
本文介绍在Windows10系统下安装Tensorflow2.0Gpu的过程。需要安装Anaconda3-显卡驱动-cuda-cudnn-tensorflowGpu2.0,在安装过程中注意软件版本对应关系。如cuda10-cudnn10.0-tensorflowGpu2.0,所需软件如下。1. 下载Anaconda,链接https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/安装成功后,配置Anaconda环境变量。右击电脑-高级系统.
2020-05-30 16:58:02
7264
1
原创 WPF总结INotifyPropertyChanged用法
在WPF中,View和ViewModel是分离的,View可以认为是UI层,ViewModel可以认为是数据层,若想实现数据驱动UI,将ViewModel中的值更新给View,VM对象需实现INotifyPropertyChanged接口,通过事件来通知UI。INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。以Textbox为例...
2018-11-27 19:53:56
3787
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人