python调用C++用pybind11来封装接口比较方便易用,由于pybind11和python环境有匹配关系,cmake构建工程时先检测python环境,然后导入pybind11环境,这篇博客提供一个参考的cmakelists和一个简单的测试。
软件编程
Python保存函数入参到文件,并从文件load再次调用
在部分调试场景下,我们需要保存函数运行的现场,方便直接从函数入口开始调试(而不是从头开始运行整个工程),我们通常会选择把函数入参保存到文件,再次调试时我们从文件运行即可。下面的代码段提供了一个功能,把函数所有入参保存到文件,然后重新从文件load函数入参,并调用函数。泛型入参都打包到字典,保证代码复用。
Pyside6 Graphview鼠标框选
上一篇博客给了一个QImageView类,其中实现了图片浏览器的基础鼠标操作,在此基础之上,进一步实现鼠标框选的操作。具体实现时,我们先构建一个场景类QImageScene,用于管理场景中的Item,场景中的Item主要有两类,一类是图像,另一类是选择框。对于选择框的操作,我们把鼠标事件定义在QImage Scene类中。
Pyside6实现的ImageView类
实现了一个ImageView类,继承自QGraphicsView,主要overwrite鼠标和滚轮事件,实现基本的拖拽,以鼠标中心点进行缩放。
Stable Diffusion 本地部署指南
部署stable diffusion ai绘图,需要 nvidia 显卡,至少需要6G显存(显存越大越好,高清图片需要更大显存)。这篇博客适用于一些有代码基础的同学(也就是不会手把手告诉怎么搭建python环境、clone代码),完全没接触过代码的同学可以找其它教程。
Stable Diffusion 官网地址: https://stability.ai/blog/stable-diffusion-public-release
Stable Diffusion 代码仓库: https://github.com/CompVis/stable-diffusion
模型下载(该链接建议从头阅读):https://stable-diffusion-art.com/models/#Stable_diffusion_v15
https://huggingface.co/CompVis/stable-diffusion
训练和使用Lora:https://zhuanlan.zhihu.com/p/624230991
webui:https://github.com/AUTOMATIC1111/stable-diffusion-webui
IEEE754 Float 规格
IEEE Float、IBM Float、VAX Float 都是常用的浮点数标准,其中IEEE745 Float 的浮点格式规范应用最广泛,这篇博客主要介绍IEEE754浮点格式规范。
Rust(二)Cargo更换crates源
国内连接 cargo.io 太慢,修改 cargo 为国内源连接比较快。修改的方法是, 在 cd ~/.car … 阅读更多
Rust(一)Cargo包管理
Cargo 是 Rust 的构建系统和包管理器。它可以帮助开发人员下载和管理依赖项,并帮助创建 Rust 包。 … 阅读更多
ImageJ拓展开发script、macro和 plugin
在处理图像和三维数据方面有一个强大且拓展性强的软件ImageJ,ImageJ本身功能不是特别多,但是多年以来积累了丰富的插件,使得其成为专业图像处理和数据科学、医学图像处理等领域的利器。FIJI ImageJ打包了很多插件,可以实现很多功能,但是总有需求超出功能的时候,我们可能希望自己开发插件。
ImageJ支持多种形式的拓展,支持用我们熟悉的Python语言(Jython)进行拓展开发,也支持JS脚本的macro开发,还支持Java开发的插件。实际上ImageJ开发插件是很简单的,有时候我们只需在demo代码基础上改上短短几行就能实现我们自己定制化的功能。这篇博客主要简单介绍script、macro和plugin开发的流程,指引一下资源位置,给简单的流程介绍,不会具体深入代码层面。
Windows好用的工具(一)PowerToys
微软的windows搭配上自家的powertoys使用体验是很棒的,博主认为几乎是windows必备软件了,可以极大提升系统操作体验(甚至可以和Mac体验一样便捷),以至于博主要专门写一篇博客记录一下。
PowerToys一般设置成开机自动启动即可。PowerToys提供和系统深度融合的取色、应用置顶、图像大小调整、桌面多区域、鼠标高量、类似Mac聚焦搜索等功能。软件下载地址:https://github.com/microsoft/PowerToys/releases/
zsh配置vscode命令行启动
如果想要在zsh中使用code命令启动vscode,可以编辑 ~/.zshrc 文件,添加如下代码 然后sou … 阅读更多
C++调用Python(二)参数传递
上一篇博客我们介绍了C++调用python的环境配置,这篇博客介绍下C++调用python时的参数传递方法,包括如何传递 变量、结构、字典、数组、图像以及多维数组。
Visual Studio在直方图、曲线、图像调试插件
现在主流的IDE都广泛支持安装插件来实现各种有用的功能,在使用Visual Studio 2019/2017开发工具时,如果要在调试状态下查看C++中某个数组,像matlab或python的plot一样画出曲线和直方图,或者查看内存中的图像裸数据,都有插件可以实现,这里介绍三个免费的工具插件:Image Watch查看图像,ArrayPlotter将数组plot成曲线,Graphical Debugging(Plot Watch)查看直方图。