- 博客(130)
- 资源 (20)
- 收藏
- 关注
原创 一些遥感数据处理python库在线帮助手册
帮助手册是学习一个库的根本,有时候从中文网站上很难搜索到需要的资料,在必应或者英文帮助手册上则可以找到很好的解释,所以特此整理一些常用库的帮助手册,以备查阅。
2024-08-30 14:47:33 207
原创 C++ Linux调试(无IDE)
跨平台IDE编译调试C++很方便,如QTCreate 、VSCode、Eclipse等,但是如果只能使用Shell控制台呢,gdb调试的优势就很明显了,在没有IDE的情况下,这个方式最有效。因为上手不是很难,特此整理参考链接。
2024-07-03 14:37:17 1110
原创 python代码的保护之setup.py用法—— pyd 保护(四)
将脚本编译成pyd文件即可实现代码很好的保护,pyd是python的二进制动态库,类似于dll文件。可以将*.py文件、*.pyx文件(Cython),由于setup功能太强大了,这里我也只会用它来编译pyd,想要了解更全面的信息可以查看参考链接。
2024-07-02 16:31:24 266
原创 python代码的保护之python_minifier(三)
这种保护代码方法与pyobfuscate方法类似,但其好处是兼容性好一些,可以通过调用库进行,实测使用这种方式可以对numba库的兼容性也很好,相较于pyobfuscate保护力度弱一些,但也足够。
2024-07-02 15:01:43 219
原创 python代码的保护之pyobfuscate(二)
这个保护方式优点:1、加密简单,不会影响代码逻辑结构,有时候还可以进行简单维护;2、不用像Pyarmor加密的时候还需要单独依赖其他动态库文件;3、兼容性好;缺点:1、保护力度不强;2、只能单个操作,批量操作较为麻烦3、对numba库的兼容性不好,有时候会有异常;
2024-07-02 12:09:07 246
原创 github国内加速访问有效方法
这里只介绍实测最有效的一种方法,修改主机的Hosts文件,如果访问github网站慢或者根本无法访问的时候可以采用下面方法进行解决。
2024-06-17 18:23:45 1050
原创 x86国产化麒麟系统上安装docker及问题解决
以前感觉安装docker没有问题,所以没有记录怎么安装的,最近在国产化系统上安装docker总是失败,经过仔细研究完全解决了该问题,特此记录。按照上面的链接可以知道整个docker安装的过程,不过对于关键步骤容易失败,现在特此梳理需要注意的问题。
2024-06-05 14:47:27 1784 2
原创 关于ENVI遥感影像的hdr元数据信息设置与读取(C++ 、Python)
最近在做遥感影像高光谱纠正部分,要求输出ENVI格式(*.img),ENVI格式影像一般包括img文件(*.img)和hdr文件(*.hdr)两部分组成。
2024-04-23 13:04:17 730 2
原创 OpenMP for并行执行任务中加锁与解锁
利用OpenMP进行并行加速操作简单,但是在并行代码中有时候需要加锁进行顺序执行,如果多个线程同时进入会导致程序执行异常。3、在并行代码中,想要顺序执行的代码或者函数前,获取互斥器(上锁);5、并行代码出来后,销毁锁。4、释放互斥器(解锁)
2024-03-22 09:26:46 400
原创 python代码的保护之Pyarmor(一)
我们在用python程序开发完程序后,进行程序发布。发布后要保证算法的安全性,常常需要对代码进行保护,通过这段时间的搜集整理,目前常见的保护方式有:代码混淆加密、编译成二进制动态库、2、支持许可加密,可以设置使用期限、绑定网卡等信息(详见:参考链接3);加密后的输出会在运行目录下的dist文件夹。1、很方便对批量代码进行加密;本篇讲述Pyarmor加密。3、加密安全性较高;
2024-01-20 18:24:54 1343 1
原创 GDAL的GDALWarpOptions结构体设置
GDAL的GDALWarpOptions结构体设置可以通过头文件很容易查阅到,但是里面第一个变量char **papszWarpOptions;
2024-01-12 11:23:51 612
原创 Winserver配置多用户同时登录方式
与此计算机的连接数量是有限的,现在已经使用所有连接。请尝试稍后连接或与系统管理员联系。可以用多个电脑,不同的用户名同时远程连接这个电脑。2、在运行框中输入gpedit.msc,点击确定。4、再依次选择:鼠标双击“限制连接的数量”1、Win+R 启动运行;5、继续配置最大连接数个数。进入系统后,运行策略。
2023-12-27 16:21:26 5888 3
原创 python加速方法:纯CPU多进程加速(joblib库)
上面列了不少好处,但是jobLib多进程运行效率相当高,但是不好调试,所以写的时候要搞清楚其并行原理,写好正常执行代码,最后改装成joblib即可。python是个好东西,苦恼于密级计算的时候只能使用单核,使用多线程不奏效,因为毕竟它受限于语言本身,于是搜索过程中看见了下图,一声苦笑。通过上面可以看出,jobLib的耗时最短,其代码写法及类似于C++ 的OpenMP加速方法。按此方法进行了两个函数加速,查看CPU使用效率图,如下图,结果是不是相当哇塞。等等joblib什么鬼,为啥它能实现多进程,请参考。
2023-12-05 12:11:13 559
原创 python加速方法:GPU加速(numba库)Demo及编写注意事项
上周使用GPU加速了一个算法,效果特别惊艳,由于算法代码本身没有太大参考价值,所以这里只记录了一些心得体会,以便后续遇到问题进行参考排查。
2023-11-27 09:22:35 1019 3
原创 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 245
原创 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 765
原创 C++多线程编程(第四章 多线程future相关)
ackaged_task包装函数为一个对象,用于异步调用,其返回值能通过std::future对象访问。C++11 异步运行一个函数,并返回保有其结果的std::future。与bind的区别,可以不调用,函数访问和获取返回值分开调用。std::future提供访问异步操作结果的机制。promise用于异步传输变量。下面代码中还包含了是否超时判断。
2023-09-08 18:12:07 170
原创 C++多线程编程(第三章 案例3:把案例1改装成案例2的条件变量多线程方式)
由于案例1采用等待循环方式进行写入,如果更换成案例2的条件多线程方式,效率会大大增加,下面开始写出新的代码吧。
2023-09-08 17:49:10 380
原创 C++多线程编程(第三章 案例2,条件变量,生产者-消费者模型)
1、获取std::mutex(常用std::unique_lock)消费者阻塞等待信号,获取信号后消费产品(取出list队列中数据)期间出差了一个月,没有时间学习,今天开始又继续学习和做笔记了…上工作的std::condition_variable。等待中,增加了时延和开销,用条件变量就很快及时处理。生产者和消费者共享资源变量(list队列);生产者生产一个产品,通知消费者消费;只在std::unique_lock。2、在获取锁时进行修改;3、释放锁并通知读取线程。
2023-09-08 08:59:18 647
原创 C++多线程编程(第三章 案例1,使用互斥锁+ list模拟线程通信)
代码包含了XThread类(基类)、XMsgSever类(消息)、测试主程序。3、通过Unique_lock和mutex互斥方位list 消息队列。主线程和子线程进行list通信,要用到互斥锁,避免同时操作。2、模拟消息服务器线程,接收字符串消息,并模拟处理;1、封装线程基类XThread控制线程启动和停止;4、主线程定时发送消息给子线程;
2023-07-28 10:58:40 952
原创 C++多线程编程(第三章 利用栈特性自动释放锁RALL,锁管理器、控制器)
RALL(resource Acquisition Is Initialization )C++ 之父Bjarne Stroustrup 提出;使用局部对象来管理资源的技术称为资源获取即初始化;它的生命周期是由操作系统来管理的,无需人工介入;资源的销毁容易忘记,造成死锁或者内存泄漏。
2023-07-28 10:01:50 392
原创 C++多线程编程(第二章 多线程通信和同步)
阻塞(Blocked):该线程被阻塞挂起,Blocked状态包括:pend(锁、事件、信号量等阻塞)、suspend(主动pend)、delay(延时阻塞)、pendtime(因为锁、事件、信号量时间等超时等待)共享锁中包含了共享锁和互斥锁,当互斥锁被锁定,所有共享锁都进不去;共享锁中的共享锁,只要在没有锁定共享锁中的互斥锁,共享锁中的共享锁都能进入;可以记录锁获取情况,多次超时,可以记录日志,获取错误情况。解锁后等待1毫秒,让其他线程可以获取到锁,运行结果如下。运行(Running):该线程正在运行;
2023-07-27 09:08:09 121
原创 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 495
原创 C++读取文件,避免中文乱码,自动识别UTF8编码还是GBK编码
测试了两个文件,分别是GBK编码和UTF8编码,常规读入UTF8编码会乱码,所以第一步先识别是什么编码,再对应的读取输出即可。避免遗忘,特此记录——辉 2023.6.6。
2023-06-06 18:48:27 1839
原创 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 3221 1
原创 SVN配置使用(钩子配置、updata忽略指定文件)
SVN钩子就是一个脚本,在SVN更新前、后、或者变化前后等等状态,触发的脚本。据此可以有多种用途,如:1、在版本提交前要求必须对更新进行说明,而且可以设置最小字数长度。2、在版本提交后想自动把这个SVN更新同步到另一个服务器上,避免这个服务器挂了造成代码丢失的无法挽回损失等等,很多用途。看了上面两个链接基本懂了,前期同步的时候看第一个链接(新手配置的时候注意看评论,要不然复现可能有问题),要忽略指定文件或者后缀重点看第二个链接。在用上述方法规避一些目录后,想把规避的目录再次update出来。
2023-02-27 18:33:35 726
原创 C++ map 非常量引用得初始值必须为左值
具体原因没有深究,但由于该错误发生了两次,为了长记性,特此记录!——辉 2022.12.8。解决方案:将属性 -> C/C++ -> 符合模式 -> 否。
2022-12-08 15:45:40 356 1
原创 编译支持JPEG2000压缩格式的GDAL(ECW库、OpenJPEG)
默认编译的GDAL不能解析JPG2000格式的影像,由于工作需要,我们的程序需要支持*.jp2格式,需要使用其他库来编译到GDAL里面进行辅助解析
2022-11-10 18:07:32 2467 2
原创 C++ Linux安装gdal及测试demo注意的问题
根据上面的参考链接进行安装gdal没有啥问题,编译后可以输出可执行程序,但是在运行的时候出现提示libgdal.so没有找到。
2022-09-05 13:21:34 908
原创 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 1037
原创 docker基本使用总结
docker 的好处开箱即用,一次配置环境,后续永无后顾之忧;学习docker首先要明白镜像与容器的区别,该文是在了解这两者区别基础上给出了一些常用命令的操作。
2022-08-15 09:56:43 601
GDAL综合包源码,编译使用
2023-09-26
编译好的gdal244库(带openjpeg)和单独openjpeg-v2.4.0-windows-x64库
2022-11-11
GDAL库2.4.4版本(内置其他库包括支持OpenCL纠正+geos352+ECW)
2022-11-10
gdal-2.4.4版本源码及geos-3.5.2源码
2022-11-10
ECW动态库(编译好的dll,可附加GDAL编译)
2022-11-10
gdal2.4.4+geos3.5.2+openCL Windows编译后的库
2022-05-06
gdal2.2.0+geos3.5.2+openCL windows编译安装包
2022-05-06
gcp&Pxy.zip
2021-08-23
LinuxOpencv4.0.1-MatchOK.zip
2021-02-26
Linux系统编译源码,opencv4.0.1合集包.zip
2021-02-24
Speckle-reduction-master.zip
2020-04-11
opencv401编译包合集.zip
2020-02-18
opencv&opencv_contrib_build_debug&release.zip
2020-02-13
统一一个压缩包ffmpeg&yasm&cmake&opencv.zip
2020-01-04
OpenCV分解视频-2019-11-29.py
2019-11-29
FWTools(处理地理信息系统数据工具包).rar
2019-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人