自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 OpenCL与CUDA(一)

【代码】OpenCL与CUDA(一)

2023-07-12 23:31:28 515

原创 OpenCL的事件

假定现有两个事件对象,evt1, evt2。先用evt1作为第一个OpenCL clEnqueue系列命令的同步事件。那么在调用第二个OpenCL clEnqueue系列命令时把evt1对象的地址作为等待事件列表的参数,而evt2作为第二个OpenCL clEnqueue系列命令的同步事件对象。这样就使得在第二个OpenCL clEnqueue系列命令开始执行前,第一个OpenCL clEnqueue系列命令必须完成。

2023-07-11 22:38:59 147

原创 OpenCL学习,并简要与CUDA对比

OpenCL的学习

2023-07-09 17:05:32 1771

原创 对象和类C++ 读书笔记

对象和类抽象和类C++中的类​ 数据表示和操纵数据的方法组合成一个简洁的包。类规范有两个部分组成:类声明:以数据成员的方式描述数据部分,以成员函数的方式描述公有接口。类方法定义:描述如何实现类成员函数。访问控制:private和public。实用类对象的程序都可以直接访问共有部分,但只能通过共有成员函数访问对象的私有成员。控制对成员的访问:数据项通常放在私有部分,组成类接口的成员函数放在共有部分。​ 类和结构体区别:结构默认的访问级别是public,类是private。实现类成员

2022-05-29 16:50:40 120

翻译 GPU硬件结构和编程模型(源于nvidia的CUDA文档)

GPU的硬件结构GPU通过一个可扩展的多线程流式多处理器(SMs)构建。一个multiprocessor可以在同一时间处理上百个线程。为了管理这些线程,使用一个特殊的结构SIMT。利用单线程中指令级的并行,以及同步硬件多线程实现的广泛线程级并行性。SIMT Architecturewarps:32个并行线程组。组成warps的独立线程在同一个程序地址同时启动,但是他们分别由各自的指令地址计数器和寄存器状态,也因此可以自由的分支和独立执行。意思是,half-warp在一个warp中可以是前一个也可以是

2022-05-29 15:03:07 824

原创 STL 算法测试 copy copy_n copy_if

copy将范围内的元素复制[first,last)到从result开始的范围中。该函数返回一个指向目标范围末尾的迭代器#include <iostream>#include <vector>#include <array>#include <algorithm>//all_oftemplate <typename T>class Test_std_algorithm {public: void add_vector_para

2021-08-10 16:09:32 92

原创 opencv-3.4.10 C++算法测试 Laplacian 中值滤波 morphologyEx

原图Laplacian该函数通过将使用 Sobel 算子计算的第二个 x 和 y 导数相加来计算源图像的拉普拉斯算子。滤波器样式[0 1 0;1 -4 1;0 1 0;]void cv::Laplacian(InputArray src,OutputArray dst, int ddepth, int ksize = 1, double scale = 1, double delta = 0, int borderType = BORDER_DEFAULT ) d

2021-08-10 15:34:46 210

原创 STL标准库算法测试 algorithm (三)

头文件algorithm is_permutation search search_n#include <iostream>#include <vector>#include <array>#include <algorithm>//all_oftemplate <typename T>class Test_std_algorithm {public: void add_vector_para(const T& a)

2021-08-09 15:50:39 83

原创 Opencv-3.4.10 高斯模糊 getDerivKernels getGaborKernel getGaussianKernel (C++)

原图高斯模糊使用高斯滤波器模糊图像。该函数将源图像与指定的高斯核进行卷积。void cv::GaussianBlur(InputArray src, OutputArray dst,Size ksize, double sigmaX, double sigmaY = 0, int borderType = BORDER_DEFAULT ) ksize 高斯核的大小sigmaX x方向的高斯核标准差sigmaY y方向的高斯核标准差测试(代码在后面)getDerivKernels该函

2021-08-09 11:38:37 1148

原创 Opencv-3.4.10 膨胀,腐蚀,filter2D(C++)

原图膨胀通过使用特定的结构元素来扩展图像。该函数使用指定的结构元素扩展源图像,该结构元素确定取最大值的像素邻域的形状。扩张可以迭代。void cv::dilate(InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1,-1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar & borderValue = mor

2021-08-07 18:44:28 790

原创 面向对象设计原则

总纲抵御变化对象封装代码数据有一系列可被复用的公共接口拥有各自责任的抽象体依赖倒置原则高层模块(稳定)不应该依赖低层模块(变化),二者都应该依赖于抽象;抽象不应该依赖于实现细节,实现细节应该依赖于抽象。开放封闭原则对扩展开放,对更改封闭;类模块应该可以是可扩展的,但是不可以修改。单一职责原则一个类应该仅有一个引起它变化的原因;变化的方向隐含着类的责任。Liskov替换原则子类必须能够替换它们的基类;继承表达类型抽象。接口隔离原则不应该强迫客户程序依赖它们不用的方法;接口应该小而完

2021-08-07 16:04:05 68

原创 opencv3.4.10 算法测试

原图双边滤波器 (bilateralFilter)高斯低通滤波计算邻域中像素值的加权平均值,其中权重随着距邻域中心的距离而减小。虽然可以给出这种权重下降的正式和定量解释,但直觉是图像通常在空间上变化缓慢,因此附近的像素可能具有相似的值,因此将它们平均在一起是合适的。破坏这些附近像素的噪声值相互之间的相关性低于信号值,缓慢空间变化的假设在边缘失败,因此被线性低通滤波模糊。我们如何防止跨边缘求平均,同时仍然在平滑区域内求平均? 许多努力致力于减少这种不希望的影响。双边滤波是一种简单的、非迭代的边缘保留平滑

2021-08-06 17:23:11 277

原创 STL标准库算法测试 algorithm (二)

头文件algorithm find, find_of, find_if_not, find_end, find_first_of, adjacent_fing, count, count_if, mismatch, equal#include <iostream>#include <vector>#include <algorithm>//all_oftemplate <typename T>class Test_std_algorithm

2021-08-06 15:17:57 93

原创 盲图像去模糊笔记——非深度学习方法简介,no-kernel, no-DL

盲图像去模糊是指在不知道潜在模糊核的情况下恢复潜在的清晰图像。在自然图像上,传统的基于梯度的图像先验去模糊往往失败,这种方法通常倾向于在傅里叶域中的低频信息。更加复杂的先验有,基于框架的先验[1],基于稀疏编码的先验[2],低秩先验[3]和暗通道先验[4]。[1]基于框架的先验依赖于自制的小波函数,在异构场景中能力较差。[5]基于L0范数的先验在本质上是组合的(因此是非凸的),其对L1范数的凸松弛需要敏感的参数调优以获得最优性能。[2]基于稀疏编码的先验假设了训练集和标签集有一个稳定的相似性,这在实

2021-08-06 10:16:34 2113

原创 STL 标准库算法测试

头文件为 algorithm , 算法由all_of, any_of, sort#include <iostream>#include <vector>#include <algorithm>//all_oftemplate <typename T>class Test_std_algorithm {public: void add_vector_para(const T& a) { vec.push_back(a); } vo

2021-08-04 20:13:47 129

原创 使用一阶微分处理图像——梯度

使用一阶微分处理图像——梯度函数f(x,y)梯度的定义几何特性是 f 在位置(x, y)处最大变化率的方向。其幅值表示为M(x, y)。M(x,y)也是图像,里面的值是梯度,通常称为梯度图像梯度向量的分量是微分,所以它们是微分算子。但向量的幅度不是,因为做了平方和平方根操作。另一方面偏微分不是旋转不变的(各向同性),而梯度向量的幅度是旋转不变的。在某些实现中,用绝对值来近似平方和平方根更适合计算。注一维函数f(x)的一阶微分差分形式:罗伯特交叉梯度算子偶数模板不好实现,改进为3*

2021-05-23 19:30:40 1436

原创 图像处理——拉普拉斯算子(python代码)

二阶微分锐化图像–拉普拉斯算子拉普拉斯算子的定义着重于图像中的灰度突变区域,而非灰度级缓慢变化的区域,会产生暗色背景中叠加有浅辉边界线和突变点(轮廓)。原图加拉普拉斯算子计算后的图像可以使图像锐化。离散形式描述滤波器模板描述代码import numpy as npfrom PIL import Imageimport cv2imgfile = "Gakki.jpg"OriginalPic = np.array(Image.open(imgfile).convert('L')

2021-05-22 18:11:08 8925

原创 求最大子数组——分治递归,暴力

最大子数组代码import mathdef Find_Max_Crossing_Subarray(A : [], low, mid, high): left_sum = float('-inf') sum = 0 for i in range(mid, low-1, -1): sum = sum + A[i] if sum > left_sum: left_sum = sum max_le

2021-05-18 17:48:02 114

原创 Nvidia Jetson TX2 Ubuntu18.04 LTS安装ROS Melodic 出现(“E:无法定位安装包“)解决方案

初始错误描述Nvidia Jetson TX2 正常刷机,刷完后Ubuntu版本是18.04 ,按照官网的方法安装ROS-Melodic,出现无法定位安装包,网上答案是 Ubuntu与 ROS 版本不对应,我试了所有的版本,一样的错误。我的方案(供参考)1.换源deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiversedeb-src http://

2021-03-13 14:09:27 1027

原创 力扣数组题:最富有客户的资产总量

问题解释给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i​​​​​​​​​​​​ 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的资产总量 。客户的资产总量就是他们在各家银行托管的资产数量之和。最富有客户就是资产总量最大的客户解决思路1.数据是m*n维矩阵,每一行的元素代表一个客户在不同银行存的钱数。2.加起来比较就好。代码class Solution {public: int maximumWealth(vector&l

2021-03-10 19:58:08 155

原创 Double DQN 论文阅读笔记(估计误差导致的过度乐观)

原文地址问题更普遍地证明,任何类型的估计误差都可能导致向上偏差,无论这些误差是否是由于噪声、函数近似、非平稳性或任何其他来源。关于这个问题的实验证明这张图是实验性质的。前提:横坐标是状态S,这里每个状态有10个动作a。真实值是 Q∗(s,a) Q_{*}(s,a)Q∗​(s,a) 假设真正的最佳价值只取决于状态,所以每个动作都有相同的真实价值。图像的描述:图中左侧一列中紫色的曲线是定义好的真实价值。顶部是Q∗(s,a)=sin(s) Q_{*}(s,a) = sin(s)Q∗​(s,a)=

2021-03-05 19:46:54 379

原创 力扣数组题目:存在重复元素Ⅱ

代码class Solution {public: bool containsNearbyDuplicate(vector<int>& nums, int k) { unordered_set<int> map; for(int i=0;i<nums.size();i++){ if(map.find(nums[i]) == map.end()){ map.insert(n

2021-03-05 14:24:35 83

原创 力扣题目:存在三个连续奇数的数组

解题思路遍历奇数,判断之后两位是不是奇数。代码class Solution {public: bool threeConsecutiveOdds(vector<int>& arr) { if(arr.size()<3){ return false; }else{ for(int i=0;i<arr.size()-2;i++){ if(arr[i]%2

2021-03-04 20:46:45 125 1

原创 力扣数组题目:所有奇数长度子数组的

力扣数组题目:所有奇数长度子数组的和解题思路1.自增2的序列长度2.切分数组3.叠加子序列代码class Solution {public: int sumOddLengthSubarrays(vector<int>& arr) { int sum=0; for(int i=1;i<=arr.size();i+=2){ for(int j=0;j<arr.size();j++){

2021-03-02 19:33:26 92

原创 2021-03-01

力扣数组题:数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。class Solution {public: int majorityElement(vector<int>& nums) { int a=nums[0],b=0; sort(nums.begin(),nums.end(),less<int>()); if(nums.size() == 1)

2021-03-01 16:54:49 330

空空如也

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

TA关注的人

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