自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(241)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 图像缩放算法及速度优化

The fastest production-ready image resize out there. Part 1. General optimizationsHow to accelerate image resizing without screwing up

2024-09-05 15:57:57 210

原创 cuda 入门笔记 1

main()

2024-08-22 18:04:27 848

原创 Jekyll Github Pages push 报错

前后加上{% raw %} {% endraw %}发现markdown格式下的代码块不能有花括号。markdown格式下的代码块中有数组用花括号。

2024-08-19 13:51:52 434

原创 gemini api 应用

注意:使用美国节点成功率更高。

2024-08-05 11:15:07 448

原创 纹理映射学习笔记

本文的纹理映射将三维曲面与二维的纹理建立对应关系。xxstyystzzst即给定纹理坐标(s,t),我们能可以计算出曲面坐标(x,y,z)

2024-07-29 16:49:20 738

原创 opengl 写一个3D立方体——计算机图形学编程 第4章 管理3D图形数据 笔记

在OpenGL中,缓冲区被包含在顶点缓冲对象(Vertex Buffer Object,VBO)中,VBO在C++/OpenGL 应用程序中被声明和实例化。一个场景可能需要很多VBO,所以我们常常会在init()中生成并填充若干个VBO,以备程序需要时直接使用。当glDrawArrays()执行时,缓冲区中的数据开始流动,从缓冲区的开头开始,按顺序流过顶点着色器。每个缓冲区需要有在顶点着色器中声明的相应顶点属性变量。通常会把顶点数据在C++端放入。一个缓冲区,并把这个缓冲区和着色器中声明的顶点属性相关联。

2024-07-24 12:27:31 467

原创 opengl入门之环境配置

参考:https://blog.csdn.net/qq_15722993/article/details/120340567?使用Visual Studio 2019的NuGet功能获取类库, nupengl.core,然后链接OpenGL32.lib的依赖。经过对比检查后,发现关键是在创建GAO对象前,没有等待GLEW初始化完毕,因此造成了访问冲突。如果自己的程序用debug,那么上面生成的lib最好都是debug,可能会报错。上述安装完毕可能会报链接错误,可能是由于没有OpenGL32.lib的依赖。

2024-07-18 16:24:58 352

原创 OpenMesh入门,安装,运行示例Hello World

环境 win10,qt5源码下载编译进入OpenMesh官网OpenMesh官网 https://www.graphics.rwth-aachen.de/software/openmesh/download/使用cmake gui注意:先安装qt5使用 CMake-Gui 构建 vs 2019 项目第一次configure 会报错,需要你填写QT5_DIR,如上图然后再次点击configure接着点击 generate然后用vs2019打开项目,生成。

2024-07-16 15:11:09 761

原创 c++ 简单线程池

头文件cppreturnType>>解释。

2024-07-03 17:20:35 973

原创 nlohmann json C++ 解析

联合体用于高效存储不同类型的 JSON 值。定义一个枚举来表示 JSON 值的类型。

2024-05-28 17:59:08 893

原创 C++ 结构体内存对齐

最开始计算Cmd_t大小时 ,我以为是7bytes. 后来发现C++ 结构体在这里右4字节对齐。但是由于 将 pdata + 1 解释为 Cmd_t* 类型的指针,并将其赋给 data 成员。在实际使用中,看见前人的代码是,new 一块内存放两个结构体。我对内存大小有些疑惑。相当于 Cmd_tag.data 和 Cmd_t.ua公用一个字节的内存。一开始我以为,new一块内存存放她两需要 2+8 =10 bytes。结构体 Cmd_t 需要 8 bytes。结构体 tag_t需要2 bytes。

2024-05-15 10:53:49 369

原创 C++ bit级别的复制

好的,我可以帮你实现这个函数。这个函数的实现步骤如下:计算源字节和目标字节的起始位置,即和除以8的商。计算源字节和目标字节内的起始位的偏移量,即和除以8的余数。循环复制每一位,共复制numBits这个实现考虑了源位和目标位可能跨越字节边界的情况,通过位运算实现了位级别的复制。请注意,这个实现假设源位和目标位的范围是合法的,即不会越界访问内存。如果需要更严格的边界检查,可以在函数开头添加相应的断言或错误处理逻辑。

2024-04-19 09:52:16 584

原创 solana 入门 1

列出可用的分发版。

2024-03-11 17:07:37 1610

原创 缩放算法优化步骤详解

在最里层的循环里面,每次都要计算 row / fYZoom 和 column / fXZoom,这个实际上可以挪出for循环,计算一次存到数组里。我们知道sse128可以一次性处理4个int类型,所以我们把最后一层for循环改成,4个坐标的算法,不满4个的单独计算。这个指令是使用1个i,来设置__m128i,将__m128i看做4个32位的部分,则每个部分都被赋为i;根据比例计算原图和缩放后图坐标的对应关系:缩放后图坐标*缩放比例 = 原图坐标。上面 一次处理四个坐标的代码要改成sse的代码。

2024-03-08 17:14:59 1639

原创 206. Reverse Linked List

【代码】206. Reverse Linked List。

2024-03-06 22:04:37 506

原创 基于chatgpt的聊天机器人

以下是一个基于Python的示例代码,展示如何在本地环境中使用预训练的ChatGPT模型构建一个简单的聊天机器人应用程序。在这个示例中,我们将使用Hugging Face Transformers库加载GPT-2模型,并创建一个基于命令行的用户界面。步骤 1: 安装必要的库确保您已经安装了以下库:步骤 2: 编写代码。

2024-03-04 15:06:06 2094

原创 27. Remove Element

【代码】27. Remove Element。

2024-02-26 09:53:42 917

原创 SIMD学习笔记2:高斯卷积计算优化

【代码】SIMD学习笔记2:高斯卷积计算优化。

2024-02-06 17:12:04 863

原创 SIMD学习笔记1

参考 http://const.me/articles/simd/simd.pdf示例:对4个数字求平方使用SIMD。

2024-02-06 17:04:32 644

原创 169. Majority Element

Given an array nums of size n, return the majority element.The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array.Example 1:Input: nums = [3,2,3]Output: 3Example 2:Inp

2024-02-04 15:07:22 1043

原创 leetcode 2446. Determine if Two Events Have Conflict

You are given two arrays of strings that represent two inclusive events that happened on the same day, event1 and event2, where:event1 = [startTime1, endTime1] andevent2 = [startTime2, endTime2].Event times are valid 24 hours format in the form of HH:MM.

2024-01-31 14:15:38 1255

原创 将本地项目通过git上传到仓库

在命令窗口中输入:git remote add origin 你的仓库地址。在【鼠标右击】弹出的菜单中,点击【Git Bash Here】在命令窗口中输入:git pull origin master。在命令窗口中输入:git push origin master。在 Gitee 中 我们刚刚新建的仓库里,去复制仓库的地址。在命令窗口中输入:git commit -m “提交项目”打开我们的项目,此时项目中是没有 .git 文件的。在命令窗口中输入:git add .在命令窗口中输入:git init。

2024-01-25 14:55:28 1036

原创 452. Minimum Number of Arrows to Burst Balloons

【代码】452. Minimum Number of Arrows to Burst Balloons。

2024-01-22 17:10:05 953

原创 leetcodev 435. Non-overlapping Intervals

【代码】leetcodev 435. Non-overlapping Intervals。

2024-01-22 16:53:15 664

原创 C++ 模板 Traits

运行结果很明显 当T为char类型是结果错误。打印累加过程看看:发现问题出在:char类型的取值范围是 -128 ~ +127,输出是: 127 -128 -127所以累加函数,当T为char类型时,T total{};代码的需要改成因为char类型的数据做累加的时候太容易超出取值范围,而产生数字溢出的错误了。

2024-01-19 15:03:47 576

原创 结构体内存泄漏,vs诊断工具

在排查问题时,你可以使用内存分析工具,例如Valgrind或Visual Studio的内存调试工具,来跟踪内存分配和释放的情况,以找出内存泄漏或异常分配的原因。在调试过程中,打开vs的诊断工具,发现大量std::_Container_proxy[] 的实例,定位到struct S代码。确保你对容器的使用是正确的,避免不必要的动态内存分配。这样的内存清零函数。相反,可以使用合适的初始化方式,或者直接调用对象的构造函数。对象是一个传入的引用参数,通常可以在调用函数时确保传入的对象是有效的,无需使用。

2024-01-17 16:52:08 1278

原创 C++写二进制文件

【代码】C++写二进制文件。

2024-01-16 16:07:16 916

原创 Algorithms practice:leetcode 33. Search in Rotated Sorted Array

【代码】Algorithms practice:leetcode 33. Search in Rotated Sorted Array。

2023-12-29 18:00:11 1462 1

原创 google test : 测试已有项目(模板类)

项目结构如下:greenNoiseMask 是原有项目在解决方案中添加google test 项目:sample-test2。

2023-12-21 15:57:53 748

原创 Heap Sort Algorithm

要从上述给定的数组元素中建立最大堆,可以清楚地看到,上述形成的完整二叉树并不遵循堆属性。因此,我们的想法是按照自上而下的方法,将数组形成的完整二叉树按相反的层级顺序进行堆化。即首先堆化树中按层级顺序遍历的最后一个节点,然后堆化倒数第二个节点,以此类推。Last non-leaf node 最后一个非叶子节点。

2023-12-14 21:10:45 1270

原创 Quick Sort Algorithm

【代码】Quick Sort Algorithm。

2023-12-11 23:12:03 390

原创 Algorithms practice:array

【代码】Algorithms practice:array。

2023-12-11 23:11:02 412

原创 随机迷宫C++

【代码】随机迷宫C++

2023-12-11 11:21:38 303

原创 柏林噪声C++

随机噪声如上图所示随机噪声没有任何规律可言,我们希望生成有一些意义的局部连续的随机图案。

2023-12-07 11:36:53 1236

原创 绘制纹理C++

用数学和C++绘制一些纹理。

2023-12-05 15:34:41 577

原创 学习代码PerlinNoise

所以在这个例子中,模板参数URBG被std::random_device所赋值,std::random_device满足可调用、返回无符号整数的要求,所以可以成功实例化构造函数。这个模板的参数URBG必须是一个可调用的类型,调用后返回无符号整数,只有满足这两个条件,这个模板才能够正常实例化,否则实例化失败。这里对构造函数进行了实现,使用了模板参数声明中的条件来限制实现的条件。,它可以接受任意类型的迭代器和随机数引擎,并对指定范围内的元素进行洗牌操作。函数的作用是对指定范围内的元素进行洗牌操作。

2023-12-05 15:30:11 353

原创 埃尔米特插值(hermite 插值) C++

为了可视化效果可以把结果写到HermiteInterpolator.txt。

2023-11-22 12:03:42 1270

原创 C++: int转换成LPCSTR

在上面的代码中,sprintf函数可以将int类型转换为字符串类型,然后将字符串类型赋值给一个char类型的数组str。最后,将str指针转换为LPCSTR类型的指针lpcstr。当不想使用sprintf的方法时,可以使用C++标准库中的std::to_string函数将int类型转换为字符串类型,然后再将字符串类型转换为LPCSTR类型。在上面的代码中,std::to_string函数可以将int类型转换为字符串类型,然后使用c_str()方法将字符串类型转换为LPCSTR类型。

2023-11-21 14:08:05 1008

原创 缩放图片算法优化 sse

本来提取像素和设置像素都应该用sse写的,但是折磨了chatgpt好几天 也没有写出来。所以这里仅用sse优化 源数据以及目标数据坐标的计算。这里实现了打印文件的缩放算法。即使是这样优化效果也很好。

2023-11-16 16:29:55 912

原创 基于B样条的FFD自由变换原理与C++实现

基础类BaseFFD。

2023-11-03 16:27:07 618

encyclopedia of distance

这本书详细讲解了各个领域的距离。一本距离的百科全书。如果需要更改loss函数或者使用距离 可以翻翻看

2019-01-02

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

TA关注的人

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