自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

静以修身,简以养德

天地不仁以万物为刍狗,圣人不仁以百姓为刍狗

  • 博客(126)
  • 资源 (20)
  • 收藏
  • 关注

原创 C++ Linux调试(无IDE)

跨平台IDE编译调试C++很方便,如QTCreate 、VSCode、Eclipse等,但是如果只能使用Shell控制台呢,gdb调试的优势就很明显了,在没有IDE的情况下,这个方式最有效。因为上手不是很难,特此整理参考链接。

2024-07-03 14:37:17 1025

原创 python代码的保护之pyd(四)

将脚本编译成pyd文件即可实现代码很好的保护,pyd是python的二进制动态库,类似于dll文件。可以将*.py文件、*.pyx文件(Cython),由于setup功能太强大了,这里我也只会用它来编译pyd,想要了解更全面的信息可以查看参考链接。

2024-07-02 16:31:24 236

原创 python代码的保护之python_minifier(三)

这种保护代码方法与pyobfuscate方法类似,但其好处是兼容性好一些,可以通过调用库进行,实测使用这种方式可以对numba库的兼容性也很好,相较于pyobfuscate保护力度弱一些,但也足够。

2024-07-02 15:01:43 181

原创 python代码的保护之pyobfuscate(二)

这个保护方式优点:1、加密简单,不会影响代码逻辑结构,有时候还可以进行简单维护;2、不用像Pyarmor加密的时候还需要单独依赖其他动态库文件;3、兼容性好;缺点:1、保护力度不强;2、只能单个操作,批量操作较为麻烦3、对numba库的兼容性不好,有时候会有异常;

2024-07-02 12:09:07 190

原创 github国内加速访问有效方法

这里只介绍实测最有效的一种方法,修改主机的Hosts文件,如果访问github网站慢或者根本无法访问的时候可以采用下面方法进行解决。

2024-06-17 18:23:45 611

原创 x86国产化麒麟系统上安装docker及问题解决

以前感觉安装docker没有问题,所以没有记录怎么安装的,最近在国产化系统上安装docker总是失败,经过仔细研究完全解决了该问题,特此记录。按照上面的链接可以知道整个docker安装的过程,不过对于关键步骤容易失败,现在特此梳理需要注意的问题。

2024-06-05 14:47:27 848 2

原创 关于ENVI遥感影像的hdr元数据信息设置与读取(C++ 、Python)

最近在做遥感影像高光谱纠正部分,要求输出ENVI格式(*.img),ENVI格式影像一般包括img文件(*.img)和hdr文件(*.hdr)两部分组成。

2024-04-23 13:04:17 574 2

原创 OpenMP for并行执行任务中加锁与解锁

利用OpenMP进行并行加速操作简单,但是在并行代码中有时候需要加锁进行顺序执行,如果多个线程同时进入会导致程序执行异常。3、在并行代码中,想要顺序执行的代码或者函数前,获取互斥器(上锁);5、并行代码出来后,销毁锁。4、释放互斥器(解锁)

2024-03-22 09:26:46 339

原创 python代码的保护之Pyarmor(一)

我们在用python程序开发完程序后,进行程序发布。发布后要保证算法的安全性,常常需要对代码进行保护,通过这段时间的搜集整理,目前常见的保护方式有:代码混淆加密、编译成二进制动态库、2、支持许可加密,可以设置使用期限、绑定网卡等信息(详见:参考链接3);加密后的输出会在运行目录下的dist文件夹。1、很方便对批量代码进行加密;本篇讲述Pyarmor加密。3、加密安全性较高;

2024-01-20 18:24:54 1186 1

转载 点的转换矩阵(平移、缩放、旋转)

参考链接:【深度好文】3D坐标系下的点的转换矩阵(平移、缩放、旋转、错切)

2024-01-20 15:33:01 82

原创 GDAL的GDALWarpOptions结构体设置

GDAL的GDALWarpOptions结构体设置可以通过头文件很容易查阅到,但是里面第一个变量char **papszWarpOptions;

2024-01-12 11:23:51 558

原创 Winserver配置多用户同时登录方式

与此计算机的连接数量是有限的,现在已经使用所有连接。请尝试稍后连接或与系统管理员联系。可以用多个电脑,不同的用户名同时远程连接这个电脑。2、在运行框中输入gpedit.msc,点击确定。4、再依次选择:鼠标双击“限制连接的数量”1、Win+R 启动运行;5、继续配置最大连接数个数。进入系统后,运行策略。

2023-12-27 16:21:26 4367 2

原创 python加速方法:纯CPU多进程加速(joblib库)

上面列了不少好处,但是jobLib多进程运行效率相当高,但是不好调试,所以写的时候要搞清楚其并行原理,写好正常执行代码,最后改装成joblib即可。python是个好东西,苦恼于密级计算的时候只能使用单核,使用多线程不奏效,因为毕竟它受限于语言本身,于是搜索过程中看见了下图,一声苦笑。通过上面可以看出,jobLib的耗时最短,其代码写法及类似于C++ 的OpenMP加速方法。按此方法进行了两个函数加速,查看CPU使用效率图,如下图,结果是不是相当哇塞。等等joblib什么鬼,为啥它能实现多进程,请参考。

2023-12-05 12:11:13 468

原创 python加速方法:GPU加速(numba库)Demo及编写注意事项

上周使用GPU加速了一个算法,效果特别惊艳,由于算法代码本身没有太大参考价值,所以这里只记录了一些心得体会,以便后续遇到问题进行参考排查。

2023-11-27 09:22:35 877 3

原创 GDAL Creation Options设置

GDAL 创建影像设置

2023-10-18 14:31:20 312

原创 C++多线程编程(第四章 案例1:base16编码,C++11和C++17 多核并行计算样例)

release版本优化的比较多,之所以C++17耗时较长原因是进入多线程次数远远大于C++11,C++11只进入了12次,而C++17采用lambda表达式函数,进入了TestNumber次。

2023-10-16 18:52:00 228

原创 GDAL Linux离线源码编译(附源码及编译步骤)

参考链接:gdal-3.1.2 linux(Ubuntu) 编译 附SQLite3 PROJ6编译工作中经常会进行程序部署,软硬件系统变化程序都需要重新编译进行适配:armCPU、X86CPU 、Ubuntu系统、Redhat、CentOS系统等等都需要重新编译库安装包源码下载点击【这里(免积分下载)】包含:1、sqlite-autoconf-3360000.tar.gz2、tiff-4.2.0.tar.gz3、curl-7.71.1.tar.gz4、proj-7.1.0.tar.gz5、

2023-09-26 17:19:01 540

原创 C++多线程编程(第四章 多线程future相关)

ackaged_task包装函数为一个对象,用于异步调用,其返回值能通过std::future对象访问。C++11 异步运行一个函数,并返回保有其结果的std::future。与bind的区别,可以不调用,函数访问和获取返回值分开调用。std::future提供访问异步操作结果的机制。promise用于异步传输变量。下面代码中还包含了是否超时判断。

2023-09-08 18:12:07 140

原创 C++多线程编程(第三章 案例3:把案例1改装成案例2的条件变量多线程方式)

由于案例1采用等待循环方式进行写入,如果更换成案例2的条件多线程方式,效率会大大增加,下面开始写出新的代码吧。

2023-09-08 17:49:10 369

原创 C++多线程编程(第三章 案例2,条件变量,生产者-消费者模型)

1、获取std::mutex(常用std::unique_lock)消费者阻塞等待信号,获取信号后消费产品(取出list队列中数据)期间出差了一个月,没有时间学习,今天开始又继续学习和做笔记了…上工作的std::condition_variable。等待中,增加了时延和开销,用条件变量就很快及时处理。生产者和消费者共享资源变量(list队列);生产者生产一个产品,通知消费者消费;只在std::unique_lock。2、在获取锁时进行修改;3、释放锁并通知读取线程。

2023-09-08 08:59:18 481

原创 C++多线程编程(第三章 案例1,使用互斥锁+ list模拟线程通信)

代码包含了XThread类(基类)、XMsgSever类(消息)、测试主程序。3、通过Unique_lock和mutex互斥方位list 消息队列。主线程和子线程进行list通信,要用到互斥锁,避免同时操作。2、模拟消息服务器线程,接收字符串消息,并模拟处理;1、封装线程基类XThread控制线程启动和停止;4、主线程定时发送消息给子线程;

2023-07-28 10:58:40 923

原创 C++多线程编程(第三章 利用栈特性自动释放锁RALL,锁管理器、控制器)

RALL(resource Acquisition Is Initialization )C++ 之父Bjarne Stroustrup 提出;使用局部对象来管理资源的技术称为资源获取即初始化;它的生命周期是由操作系统来管理的,无需人工介入;资源的销毁容易忘记,造成死锁或者内存泄漏。

2023-07-28 10:01:50 375

原创 C++多线程编程(第二章 多线程通信和同步)

阻塞(Blocked):该线程被阻塞挂起,Blocked状态包括:pend(锁、事件、信号量等阻塞)、suspend(主动pend)、delay(延时阻塞)、pendtime(因为锁、事件、信号量时间等超时等待)共享锁中包含了共享锁和互斥锁,当互斥锁被锁定,所有共享锁都进不去;共享锁中的共享锁,只要在没有锁定共享锁中的互斥锁,共享锁中的共享锁都能进入;可以记录锁获取情况,多次超时,可以记录日志,获取错误情况。解锁后等待1毫秒,让其他线程可以获取到锁,运行结果如下。运行(Running):该线程正在运行;

2023-07-27 09:08:09 108

原创 C++多线程编程(第一章 多线程基本使用)

C++ 11;C++ 14;C++ 17;C++ 20;代码主要为:第一章01~07内容。

2023-07-26 12:13:01 94

转载 GDAL构建遥感影像金字塔和在几种使用场景中的性能对比【转】

留作被查,详见下面链接。

2023-07-25 08:31:42 78

原创 C++中的一些小技巧,numeric_limits、static_cast、reinterpret_cast方法内存验证

在准备求一堆double数据中的最大值最小值的时候,常规做法是预估这堆数据的最大最小值,然后进行比较求,在重构别人代码的时候发现,可以准确知道double类型最大值或者最小值,获取方法如下。C++中的reinterpret_cast主要是将数据从一种类型的转换为另一种类型。C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作。该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。此时结果,如下(调试状态,代码执行到下面,调试断点截图未显示)

2023-06-16 10:51:22 455

原创 C++读取文件,避免中文乱码,自动识别UTF8编码还是GBK编码

测试了两个文件,分别是GBK编码和UTF8编码,常规读入UTF8编码会乱码,所以第一步先识别是什么编码,再对应的读取输出即可。避免遗忘,特此记录——辉 2023.6.6。

2023-06-06 18:48:27 1705

原创 C++调用matlab编译动态库方法及相关问题解决

把matlab代码编译成动态库,C++调用matlab生成的动态库。下面测试样例是打开一张图片,成为cv::Mat格式使用matlab引擎(engine.h)加载到matlab进行显示,主要熟悉Matlab engine的使用方式。说明:在使用matlab编译的exe或者dll,移植到一个没有matlab的电脑时可能无法运行,需要在官网上下载对应的运行时进行安装后,程序才能正常执行。把*.m代码编译成C++代码,但是对于有些m代码中使用了有些库文件、调用了非m代码的函数的函数是无法编译成C++源代码。

2023-04-26 22:25:52 2908 1

原创 SVN配置使用(钩子配置、updata忽略指定文件)

SVN钩子就是一个脚本,在SVN更新前、后、或者变化前后等等状态,触发的脚本。据此可以有多种用途,如:1、在版本提交前要求必须对更新进行说明,而且可以设置最小字数长度。2、在版本提交后想自动把这个SVN更新同步到另一个服务器上,避免这个服务器挂了造成代码丢失的无法挽回损失等等,很多用途。看了上面两个链接基本懂了,前期同步的时候看第一个链接(新手配置的时候注意看评论,要不然复现可能有问题),要忽略指定文件或者后缀重点看第二个链接。在用上述方法规避一些目录后,想把规避的目录再次update出来。

2023-02-27 18:33:35 681

原创 C++ 优先级队列的vector实现

队列大家很熟悉,可以用vector数据结构存储,优先队列可能新手不怎么熟悉(老兵可以略过本文)

2023-01-13 10:10:25 1018

原创 C++ map 非常量引用得初始值必须为左值

具体原因没有深究,但由于该错误发生了两次,为了长记性,特此记录!——辉 2022.12.8。解决方案:将属性 -> C/C++ -> 符合模式 -> 否。

2022-12-08 15:45:40 333 1

原创 编译支持JPEG2000压缩格式的GDAL(ECW库、OpenJPEG)

默认编译的GDAL不能解析JPG2000格式的影像,由于工作需要,我们的程序需要支持*.jp2格式,需要使用其他库来编译到GDAL里面进行辅助解析

2022-11-10 18:07:32 2152 2

原创 C++ Linux安装gdal及测试demo注意的问题

根据上面的参考链接进行安装gdal没有啥问题,编译后可以输出可执行程序,但是在运行的时候出现提示libgdal.so没有找到。

2022-09-05 13:21:34 869

原创 QT环境配置

从QTCreator 和VS2017 两个方面记录QT环境的配置:参考链接:MSVC编译器介绍QT 安装及组件选择坑1:直接安装后,QTCreator无法进行debug调试Unable to create a debugging engine解决方案:https://blog.csdn.net/xuw_xy/article/details/107442068主要原因是要修改Qt 在 VS2017 上的安装配置:https://blog.csdn.net/stitchD/article/detail

2022-08-26 14:46:14 984

原创 docker基本使用总结

docker 的好处开箱即用,一次配置环境,后续永无后顾之忧;学习docker首先要明白镜像与容器的区别,该文是在了解这两者区别基础上给出了一些常用命令的操作。

2022-08-15 09:56:43 546

原创 github本地账户入门配置

Linux github本地账户配置,版本控制入门

2022-08-10 14:26:00 186

原创 python获取文件夹下指定后缀名文件列表(可手工设定是否遍历子文件夹)&cmd复制文件命令使用

python获取文件夹下指定后缀名文件列表(可手工设定是否遍历子文件夹)

2022-08-09 21:54:13 1707

原创 C++ string replace操作

C++ string replace操作本来网上有很多,但是按其操作有坑,编译提示语法错误。

2022-08-05 13:08:17 4779

原创 C++ 二分法算法查找返回Array最近的值

使用二分法进行查找返回Array最近值,支持float类型、int类型等各种数据类型。

2022-07-22 17:01:41 626

原创 HDF5 windows编译 release版本、Debug版本

由于最近急需的一个项目,需要hdf5库,误打误撞,编译成功。特此记录官网下载地址:https://portal.hdfgroup.org/display/support/HDF5+1.12.2#files找到如下地址,本人电脑有cmake软件,我下载了Cmake版本和源代码版本同时进行了,事实上我也下载了源码进行cmake手工编译,但是不如直接下载CMake版本的来的方便,所以这里我直接记录了Cmake版本的编译方法如果下载不了,可以通过该链接进行下载如果不想看怎么编译,可以从这里下载我编译好的库1、下

2022-07-10 15:16:52 921

pyobfuscate 混淆加密

包含pyobfuscate库及使用方法,也可以参考我的博客《python代码的保护之pyobfuscate(二)》使用

2024-07-02

GDAL综合包源码,编译使用

包含: 1、sqlite-autoconf-3360000.tar.gz 2、tiff-4.2.0.tar.gz 3、curl-7.71.1.tar.gz 4、proj-7.1.0.tar.gz 5、geos-3.8.1.tar.bz2 6、gdal-2.4.4.tar.gz 具体编译方法参考我的博客《GDAL Linux离线编译》

2023-09-26

C++读取UTF8编码文件,乱码测试数据

有UTF8编码测试文件和GBK编码测试文件

2023-06-07

opencv4.0.1库,支持匹配

适用于phytium,2000/8 E8c CPU 银河麒麟V10 arm64 aarch64 编入了匹配功能

2023-05-18

编译好的gdal244库(带openjpeg)和单独openjpeg-v2.4.0-windows-x64库

1、编译好的gdal库:gdal+geos+openCL + openjpeg 2、单独编译好的openjpeg库

2022-11-11

GDAL库2.4.4版本(内置其他库包括支持OpenCL纠正+geos352+ECW)

内置其他库包括支持OpenCL纠正+geos352+ECW,开箱即用。 该GDAL版本支持Jpeg2000压缩的格式,支持后缀*.jp2影像 具体编译方法可以参考我的博客:https://blog.csdn.net/weixin_42727069/article/details/127783361

2022-11-10

gdal-2.4.4版本源码及geos-3.5.2源码

gdal-2.4.4版本源码及geos-3.5.2源码,这是配合我的博客进行gdal编译的原始素材 编译带ECW的GDAL:https://blog.csdn.net/weixin_42727069/article/details/127783361

2022-11-10

ECW动态库(编译好的dll,可附加GDAL编译)

ECW动态库支持jpg2000压缩格式的影像,支持*.jp2影像。 详细怎么添加到GDAL的编译方法请参见我的博客 编译带ECW的GDAL:https://blog.csdn.net/weixin_42727069/article/details/127783361

2022-11-10

HDF5库,Windows编译好的库

包括Realse版本和Debug版本

2022-07-10

Hdf5 cmake版本源代码

该版本可以直接用于hdf5库的编译

2022-07-10

gdal2.4.4+geos3.5.2+openCL Windows编译后的库

该编译库包含: gdal2.4.4(gdal204.dll) geos3.5.2 openCL 纠正时支持GPU加速,该版本解决了多项式纠正GPU显存存在内存泄漏问题。

2022-05-06

gdal2.2.0+geos3.5.2+openCL windows编译安装包

该安装包包含: gdal2.2.0(gdal202.dll) geos3.5.2 openCL 纠正时支持GPU加速,该安装包缺点是GPU显存存在内存泄漏,对于小GPU显存容易爆内存。可以下载我的gdal2.4.4的编译版本

2022-05-06

geos3.6.5版本编译后的releas、debug版本

windows编译的geos库,版本:geos3.6.5 包含releas、debug版本

2022-02-09

gcp&Pxy.zip

python学习最小二乘法使用,经纬度转换关系:Lng_OFF = 113.999990991; Lat_OFF = 31.333342342333; Resolution = 1.8018e-05;

2021-08-23

cocoapi.zip

包含cocoapi\PythonAPI,目标检测的时候要用到

2021-08-08

VCForPython27.zip

安装cocoAPI的时候需要用到的依赖

2021-08-08

models-1.12.0.zip

tesorflow的扩展models

2021-08-06

PyQt4-4.11.4-cp37-cp37m-win_amd64.zip

python3.7 64位系统

2021-07-29

LinuxOpencv4.0.1-MatchOK.zip

Linux系统opencv编译 软硬件环境: CPU: interl x86CPU 系统:centos系统 编辑及参考链接:https://blog.csdn.net/weixin_42727069/article/details/113999118

2021-02-26

Linux系统编译源码,opencv4.0.1合集包.zip

包含Linux系统下编译opencv4.0.1的源码,包含了四个模块 1、OpenCV 4.0.1.tar.gz (opencv源码) 2、opencv_contrib-4.0.1.tar.gz(opencv_contrib源码) 3、cmake-3.5.1.tar.gz(cmake安装包) 4、boostdesc_bgm.i等.zip(编译opencv_contrib源码,中途提示缺失部分) 安装教程参考我部署的时候写的一篇博客:https://blog.csdn.net/weixin_42727069/article/details/113999118

2021-02-24

siftGPU中文手册_Test.pdf

siftGPU中文手册_Test.pdf

2021-01-21

Speckle-reduction-master.zip

SAR影像数据处理过程中需要用到的滤波算法,matlab的一些滤波算法封装函数源代码,无其他依赖。 文件中包含滤波算法: Mean filter. -Frost filter. -Modified frost filter(added thresholds). -Lee filter(Using Masks, ENL ect). 如果想要知道怎么操作,欢迎访问我的博客,有一篇记录。 链接:https://blog.csdn.net/weixin_42727069/article/details/105456619

2020-04-11

.cache.rar

编译opencv4.0.1 需要的工具包,解压后放在源代码根目录中进行编译,配合我的另一个工具包合集使用“opencv401编译包合集包”

2020-02-18

opencv401编译包合集.zip

opencv401编译包合集包含如下工具: 1、opencv-4.0.1.zip——opencv源码安装包 2、opencv_contrib-4.0.1.zip——opencv contrib包,需要通过编译增加算法功能包 3、cmake-3.15.7-win64-x64.msi——CMake编译工具 由于上传容量有限,不能超过220M所以还有个.cache.rar文件我单独再传到我的下载资源里面

2020-02-18

opencv&opencv_contrib_build_debug&release.zip

opencv4.0.1带opencv_contrib编译版本,下载下来解压直接配置VS使用,费了九牛二虎之力好不容易编译成功的

2020-02-13

统一一个压缩包ffmpeg&yasm&cmake&opencv.zip

该软件是在redhat linux 系统下配置opencv ,配置方法详见我的博客https://blog.csdn.net/weixin_42727069/article/details/103830577,重点是对opencv打开视频为空的问题提供解决方法。

2020-01-04

OpenCV分解视频-2019-11-29.py

该程序实现批量将视频进行分解成图片,默认会根据视频名称检测视频所在目录下是否存在该名称的文件夹,若没有则用该名称新建一个文件夹,并将分解的图片放在该新建的文件夹中,可以自己设置抽取的帧率

2019-11-29

FWTools(处理地理信息系统数据工具包).rar

GDAL工具包,用于查看大图片,卫星图片。 这是FWTools(处理地理信息系统数据工具包),帮你处理地理信息系统GIS数据和需要查看或转换各种栅格或矢量文件的用户的应用程序的集合。在命令行模式下或使用 FWTools Shell 控制台可以访问应用程序。

2019-11-13

空空如也

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

TA关注的人

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