自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(276)
  • 资源 (4)
  • 收藏
  • 关注

原创 Beyond欣 个人博客目录

  写博客主要为了记录自己学习内容,不论是个人技术水平还是文笔都是渣渣,定期同步到CSDN方便自己在任何电脑都能找到自己笔记,如果有人遇到跟我一样的问题也算顺带帮助下他人。Beyond欣 个人博客目录1. C++1.1. 抽象思维1.2. 底层思维1.3. 数据结构与算法1.4. Qt/C++1.5. CMake2. Python3. 模型/图像3.1. VTK3.2. Opencv3.3. ITK3.4. DCMTK3.5. HALCON3.6. CGAL3.7. D

2021-01-26 19:54:13 76

原创 KISS Dicom Viewer : 一个简单的 DICOM 浏览器

KISS Dicom Viewer : 一个简单的 DICOM 浏览器0 前言1 软件介绍1.1 软件命名1.2 使用拓展库1.3 程序架构1.4 代码规范1.5 软件界面1.6 参考代码2 开发计划和进度2.1 已经开发2.2 待开发3 如何实现3.1 显示ui --- 屏幕分割显示布局0 前言  一直没有找到一个合适的Dicom 浏览器。Windos下的小蚂蚁很好用RadiAnt Dicom Viewer但可惜不是跨平台的,只有Windos版本。平时工作系统是Deepin,虽然用deepin-win

2020-09-19 16:42:49 1081 11

原创 TortoiseGit 速度较慢 改用 openssh

TortoiseGit 速度较慢 改用 openssh  之前一直用GitKraken+小飞机在ubuntu下拉代码学习。最近把家里的电脑换成windos,我发现只要用TortoiseGit来拉代码速度永远15kb/s。已经开了代理,TortoiseGit也设置使用本地代理的端口速度就是上不去。但是直接git clone速度却正常。  翻到了这段说明https://www.iteye.com/topic/1124117,重装TortoiseGit。不用TortoisePLink改用openssh后果然

2021-02-27 08:15:22 8

原创 Qt ApplicationAttribute/WidgetAttribute 程序级别属性

   Qt 不是开发语言,没有所谓的谁厉害。对于Qt本身来说老鸟跟新手区别只是谁遇到的问题更多。当然衡量Qter的水平主要还是看c++的水平。Qt ApplicationAttribute/WidgetAttribute 程序级别属性  今天测试时候换了一批新的电脑。linux/mac都正常,就win下显示有些问题。检查后发现,新装的win系统总是默认缩放150%,高清屏显示也是自带200%缩放。这个缩放会造成显示的一些问题。 QApplication::setAttribute(Qt::AA

2021-02-26 22:04:46 19

原创 Qt Designer 样式表 类型择器无效

Qt Designer 样式表 类选择器无效   Qt 样式表使用基本上就是:选择器 { 属性 : 值}选择器 : 状态 { 属性 : 值}选择器 : 辅助控制器 { 属性 : 值}  一般大一点正规点的程序都是把所有样式表放在一个.qss文件里统一加载。省事的话每个控件在Qt Designer里也可以直接添加样式表。至于使用那个要看继承设置,默认是最后一次setStyleSheet。  Qt Designer里添加的一方面好处就是所见即所得,但是有些情况下Qt

2021-02-26 22:03:55 15

原创 KISS Dicom Viewer 体渲染插件(利用vtk Volume 实现体渲染)

KISS Dicom Viewer 体渲染插件(利用vtk Volume 实现体渲染)项目地址:CodeChina kissDicomViewer详细介绍:CSDN 一个简单的 DICOM 浏览器  参考代码:可视化借鉴:F3D https://kitware.github.io/F3D/Volume Filter参数参考:GavriloviciEduard https://github.com/GavriloviciEduard?tab=repositories  参考资料:G

2021-02-07 21:31:09 62

原创 VTK DICOM 数据结构设计

VTK DICOM 数据结构设计项目地址:CodeChina kissDicomViewer详细介绍:CSDN 一个简单的 DICOM 浏览器  参考代码:Volume Filter参数参考:GavriloviciEduard https://github.com/GavriloviciEduard?tab=repositories目的  分享下自己在做 kissDicomViewer 时关于DICOM文件数据结构设计的思路。  自己用到过的 c++ 的开源DICOM协议使用主要有

2021-02-07 21:19:48 31

原创 打开 DICOM zip文件

打开 DICOM zip文件项目地址:CodeChina kissDicomViewer详细介绍:CSDN 一个简单的 DICOM 浏览器  小蚂蚁有一个功能,导入文件时支持DICOM zip文件,一般DICOM文件数量都比较多,大家相互拷贝的时候常常压缩成zip文件。小蚂蚁可以直接打开zip文件(读取里边所有的DICOM文件并显示)。小蚂蚁那么高的效率应该是自己实现zip文件的解压,在内存里直接判断是否DICOM文件,是的话直接拷贝出来。  我能想到的自己可以实现的办法就是:如果载入文件后缀

2021-02-04 20:07:29 33

原创 利用DCMTK实现dcm文件转图片 jpeg bmp dicom tiff pnm png

利用DCMTK实现dcm文件转图片 jpeg bmp dicom tiff pnm png项目地址:CodeChina kissDicomViewer详细介绍:CSDN 一个简单的 DICOM 浏览器实现功能  DICOM浏览器自然少不了当前打开文件转成图片的功能,可以导出当前选择层和全部层。根据当前打开的不同文件和选项输出单张图片或者序列图片。 本来想增加导出mp4的功能,可惜DCMTK没有现成的,需要引入ffmpeg。想了想还是等常规功能做完了以插件形式引入吧。需要注意文件输入:单张单

2021-02-04 20:04:56 47 1

原创 KISS Dicom Viewer:插件实现方法

项目地址:CodeChina kissDicomViewer详细介绍:CSDN 一个简单的 DICOM 浏览器KISS Dicom Viewer:插件实现方法 KISS Dicom Viewer:插件实现方法1 前处理1.1 图片前处理实现1.2 界面设计1.3 插件设计1.3.1 定义插件接口1.3.2 插件的实现1.3.3 插件的读取1.3.4 插件的调用2 多平面重建(MPR)3 三维重建(VR体渲染)4 图像融合  KISS Dicom Viewer计划做四个插件:多平面重建(MPR)

2021-02-03 22:10:22 65

原创 仿照小蚂蚁实现 sharpen smooth Edge Emboss

项目地址:CodeChina kissDicomViewer详细介绍:CSDN 一个简单的 DICOM 浏览器仿照小蚂蚁实现 sharpen smooth Edge Emboss  小蚂蚁有个功能是ImageFilters,模仿小蚂蚁也简单实现了一下。为了方便学习以及后续调整做成插件的形式。下边展示是小蚂蚁的四种Filters和自己目前实现的。利用了Qt的QtPlugin,如果对前处理结果不满意直接修改插件即可。实现方法  图像前处理思路就是每次再界面上刷新图片时调用一个模板函数QPix

2021-02-03 21:44:06 37

原创 QTreeWidget 实现检索、右键菜单等功能

如果需要一个高自由度的Tree视图,一般使用QTreeView+QAbstractItemModel+QSortFilterProxyModel+QStyledItemDelegate。QTreeWidget=QTreeView+QTreeWidgetItem(无法增加自定义接口)  图省事且明确知道需求不会增加,可以用QTreeWidget方便些。QTreeWidget 实现检索、右键菜单等功能  QTreeWidget是真方便,就怕你照着需求做完,项目经理让你加代理。增加表头和右键菜单c.

2021-02-01 22:10:00 40

原创 QInputDialog QDialogButtonBox 弹窗按钮设置中文

QInputDialog QDialogButtonBox 弹窗按钮设置中文  Qt默认弹窗都是英文,需要自己手动修改下才能改为中文。用qt5_create_translation的话,直接修改.ts文件。QInputDialog  修改前 QString dlgTitle = "系统设置登录"; QString txtLabel = "请输入管理员密码"; QString defaultInput = "******"; QLineEdit::Echo

2021-01-30 15:46:31 44

原创 c++ vector 和arma::vec引发的bug

c++ vector 和arma vec引发的bug问题描述:  算法组同学给的源码,自己集成进软件后简单测试了下没有问题。到生成环节被测试人员打回:软件体膜计算结果时好时坏,10次里有两三次错误,并且有四种错误结果。问题分析  BUG特点:随机性、发生概率比较小、每次错误后结果都不一致、开发人员自己单元测试正常。这种情况一般是越界或者返回局部变量的引用。排查步骤DEBUG模式下越界会直接抛出异常,返回局部变量的引用会有编译器警告。测试后均未出现。再试一下打断的挨个看,结果加了断点

2021-01-30 15:27:19 41

原创 2021 伊始:由一次找虐的面试引发的反思

2021 伊始:由一次找虐的面试引发的反思  今天晚上无心工作,自己纯粹去找虐。啥水平自己心里还是清楚地,基本地算法都没有看过一遍,c++基础也没有完整的看过一遍,就是个地地道道的面向百度cv编程。1. 这半个月的面试  12月底提出离职,简历挂到BOSS没事接几个面试(年后再投相中的几家规模不大的公司)。一个月下来,offer虽然拿了几个不过都是小公司,那种很水的面试。但凡有规模的一律初面就pass,谁叫我连基本地算法实现、基本数据结构、基本的网络知识、基本的操作系统都没有系统的学习过。不停的试水

2021-01-27 22:33:38 108 2

原创 C++ 面试 手写回调函数

  题目很简单,但是每次看到这个问题都有别样的感觉。  讲真的,这个题是我19年7月刚准备转行做开发时去大华面试的一道题。那套题都是基础知识,可是我是完全小白,当时那张卷子写的真的是一言难尽,最后灰溜溜的走了。  那天花了俩小时从余杭跑到滨江,让后笔试做的稀里糊涂,连见面试官资格都没有。当天下午在滨江还约了另一个小公司的面试,上午做成那个样子,出来后下午没打算再去。回公司路上告诉自己再试一次吧,下午如果还是这个结果直接放弃转行吧,老老实实做机械设计吧。万幸,下午去的小公司没有笔试,面试官是搞算法的,c+

2021-01-27 19:38:33 48 1

原创 开源网站推荐:编程导航 部署到宝塔面板

开源网站推荐:编程导航 部署到宝塔面板开源作者 CSDN博客 程序员鱼皮github liyupi  最近在看到一篇博客 爆肝 200 小时,我做了个编程导航!,下载了下 编程导航主页 的源码体验了下,感觉很完美:  自身是c++桌面软件开发,一直想找一个满意的导航首页,自己写、md转成静态网页、找现成的前后试过各种导航首页,奈何自己对于前端和wdb开发一窍不通,一年了也没有有满意的。直到无意看见了这个编程导航主页,自己再改下简直完美呀。可惜JS/TS一点不会,还得花点时间学习下才能改

2021-01-26 21:59:42 84 2

原创 Linux 下Appimage 压缩解压命令

Linux 下Appimage 压缩解压命令参考 https://github.com/AppImage/AppImageKit1. 需求公司有几款产品打包成appimage的形式,现场测试时有时需要替换其中几个库(比如加密狗、图片等),就需要解压文件然后在压缩。本来认为需要每次打包后无法修改。翻了下官方介绍才发现,appimage支持直接压缩和解压。2. 打包好的 Appimage 解压--appimage-extract extracts the contents from the emb

2021-01-26 19:30:37 85

原创 C++ 构造函数初始化列表

  这个问题面试被问烂了,关于这个介绍很多了。看十遍不如自己写一遍c语言中文网:C++构造函数初始化列表C++ 构造函数初始化列表初始化列表并没有效率上的优势,仅为了书写方便初始化列表的顺序只跟声明顺序相关,使用初始化列表时请根据声明顺序初始化!!!class T { public: T (): b_(10), a_(b_) { std::cout << a_ << "," << b_ << endl;

2021-01-24 17:13:36 46

原创 C++ const 关键字作用

  这个问题面试被问烂了,关于这个介绍很多了。看十遍不如自己写一遍原文链接C++ const 关键字作用面向过程修饰局部/全局变量  修饰的值只能使用,无法修改。修饰时必须初始化;修饰指针  const在*左边(左定值):修饰指针指向内容,内容不能变指针可以变。  const在*右边(右定向):修饰指针本身,指针不能变内容可以变。  const在*两边:修饰指针和内容,指针内容都不能变。修饰函数参数  传递变量:传入值无法修改  传递引用:引用方式传递参数且传入值不能改  

2021-01-23 23:28:22 26

原创 利用QTimer实现Dicom 播放功能

  做kissDicomViewer需要影像自动播放。记录下每天学习内容项目地址:CodeChina kissDicomViewer详细介绍:CSDN 一个简单的 DICOM 浏览器利用QTimer实现 Dicom 播放功能1. 效果  支持自动循环播放、快进、快退、播放速度调整、到第一针/最后一针。  界面小于一定宽度,自动暂停并隐藏播放栏。2. 实现  双向绑定 进度条值得变化 <==> DICOM 显示帧变化 。 利用QTimer的定时发送信号功能,调整进度条

2021-01-23 22:04:12 41

原创 DCMTK 遍历 DICOM 标签/Tags 并 可视化

  做kissDicomViewer需要用到遍历标签功能。记录下每天学习内容项目地址:CodeChina kissDicomViewer详细介绍:CSDN 一个简单的 DICOM 浏览器DCMTK 遍历 DICOM 标签/Tags 并 可视化1. 效果  请无视目前样式,这个只是自己做遍历标签可视化测试用的。后续会抄小蚂蚁加上搜索、右键拷贝值、拷贝全部值、拷贝键等等。  区分MetaInfo和DataSet  四层嵌套显示效果2. 现成接口,转成其他格式后再解析  做DICO

2021-01-22 22:04:42 110

原创 MD语法,代办事件和已完成代办事件

MD语法,代办事件和已完成代办事件  说来尴尬,用md记录笔记有一年了,今天快捷键按错了才发现MD语法有已完成事件和待完成事件…用了下感觉发现了新大陆。* 起床* 写代码* 睡觉起床写代码睡觉* [x] 起床* [x] 写代码* [ ] 睡觉 起床 写代码 睡觉...

2021-01-21 22:57:58 51

原创 c++ static 作用

c++ static 作用1.1. 面向过程全局变量和全局函数  修饰前全局可见,修饰后只在当前文件可见。同一类有多个对象,用到相同的变量可以在开头声明下。修饰局部变量  这个值只第一次初始化,然后保留。以后每次再进入这个函数时候值依然留着。可以作为一个标志,或者递增使用1.2. 面向对象修饰类的成员变量  这个类的所有对象共用这个成员变量。静态成员变量。加锁、单例等,同一类不同实例需要共享数据时使用修饰类的成员函数  这个成员函数不需要实例化就可以

2021-01-21 22:56:50 25

转载 C++ new和malloc的区别(转载)

  这个问题面试被问烂了,关于这个介绍很多了。看十遍不如自己写一遍C++ new和malloc的区别(转载)原文地址https://blog.csdn.net/nyist_zxp/article/details/80810742https://www.zhihu.com/question/281940376/answer/914142481  c++有堆内存和栈内存之分。本来全部都是堆内存,栈内存的出现:花一点点cpu的时间,极大缩短开发时间和实现内存自动管理。  new和malloc都是

2021-01-21 22:55:44 20

原创 Qt widget 增加边框

Qt widget 增加边框  Qt自带很多控件,使用时经常需要给显示的窗口增加边框。实现方法也有很多:样式表QPaint直接画QFrame1. 样式表增加边框2. QPaint增加边框3. QFrame增加边框  QFrame是基本控件的基类,他继承自QWidget主要增加了边框的功能:图片来自 doc.qt.ip enum Shape { NoFrame = 0, // no frame Box = 0x0001

2021-01-19 22:01:38 322 1

原创 C++ 多态和析构虚函数

  面试被问道具体名词解释,知道啥意思,表述不清。难受。C++ 多态和析构虚函数C++ 多态和析构虚函数1. 多态含义2. 如何实现多态-虚函数3. 纯虚函数4. 析构函数5. 虚函数必须在外部实现6. 构造函数不能是虚函数7. 虚函数实现原理7.1.1. 虚函数类的构造7.1.2. 虚函数类的调用C++ 多态和析构虚函数注意:1.一个类如果使用了虚函数,请把他的析构函数也改为虚函数。2.保证至少有一个虚函数不是内联实现的。1. 多态含义  多态,字面上看多态就是多种形态。类存在继承关系

2021-01-19 19:45:55 35

原创 DCMTK 调用时控制台信息过多

  DCMTK 调用时控制台信息过多  dcmtk集成了很多功能,虽然是个库,同时本身也提供了很多可执行程序(bulid/bin下)。dcmtk提供的现成程序都支持本地日志生成(使用的log4cplus),在作为库调用时也有大量调试信息输出,集成进自己软件后不需要那么多默认的调试信息,修改办法。 /** set up the logging and enable it * @param level the verbosity that you want */ st

2021-01-19 11:47:55 29

原创 DCMTK 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

DCMTK链接时报错:ofstd.lib(ofcond.obj):-1: error: LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(mocs_compilation.cpp.obj 中)解决办法:  没有生成动态链接库,重新编译下就可以...

2021-01-18 19:47:21 60

原创 C++ 指针和引用

  最近几个周末约了去面试,很多被问烂了的基础问题竟然回答的一塌糊涂。这里记录下,希望以后别再忘了。内容摘抄自菜鸟教程,和一些个人看法。 菜鸟教程:C++ 教程   C++ 指针和引用C++ 指针和引用C++ 指针和引用1. 指针和引用的区别2. 指针3. 引用4. 引用&&指针 作为参数4.1. 常引用5. 把引用&&指针 作为返回值6. 引用&&指针 实现多态1. 指针和引用的区别  很多情况直接替换就可以。不存在空引用。 指针不

2021-01-17 22:54:20 97

原创 小乌龟 TortoiseGit使用本地代理

这样也可以git config --global https.proxy http://127.0.0.1:12333git config --global https.proxy https://127.0.0.1:12333

2021-01-17 17:31:49 21

原创 failed to update PAC file

替换一下 pac.txt共享地址:http://118.25.63.144:505/index.php?share/file&user=1&sid=k3fNzmvZ 提取密码:qBpvv详情见https://github.com/gfwlist/gfwlist

2021-01-17 17:13:23 222

原创 c++ explict关键字使用

应该尽量不要使用转换,尽量使用显式转换来代替隐式转换。c++ explict关键字使用  转换就是一个类型转换成另一个类型:隐式转换,系统跟据程序的需要而自动转换 int a = 10, b = 10; double c = 10.0; std::cout << a + b + c << std::endl;显式转换,强制转换,是自己主动让这个类型转换成别的类型 int a = 10, b = 10; double c .

2021-01-14 19:36:01 27

原创 c++ 给类取别名

  平时有用到itk(全是模板类和模板函数),使用起来又长又晦涩。一般都是给类取个别名。c++ 给类取别名  c++ 11 给类取别名的方式有两个using和typedef。template <typename T>void Test(T a) { typedef typename T::list Self; using Self1 = typename T::list; Self b; Self1 c; std::cout << a

2021-01-14 19:35:23 84

原创 c++ 模板编程

  平时有用到itk(全是模板类和模板函数),真实使用情况就是每次copy下官方案例的代码。由于c++这块当时是自学的,模板函数tempplate、typename、typedef、using只是大概知道是个什么意思,每次看到基本就是忽略了。这次刨根问底一下吧c++ 模板编程目的:能够实现非常灵活的类型安全的接口和极好的性能。同时简化代码,减少重复代码。常见的工具std::function,GTest都是借助模板实现的。弊端:复杂的地方大量使用模板让人看的崩溃。结论:如果你使用模板编程,

2021-01-14 19:34:42 32

原创 内联函数inline 什么时候不展开

  最近去面试问到了,这里记录下内联函数inline 什么时候不展开  如果不是从源码编译的话,找不到实现就不展开了。inline写在定义上而不是声明上,函数写头文件而不是源文件增加程序体积,提高程序运行效率。空间换时间。一般很短的(10行内)函数用这个。减少函数调用的开销,预编译的时候把函数内容抄到被调用的地方。...

2021-01-14 19:34:10 67

原创 解决哈希冲突的办法

  面试问到了,回来感觉需要记录下。解决哈希冲突的办法链地址 相当于重复的键单独搞个链表公共溢出区,把重复的键集中存储多搞几个哈希函数,第一个重复了用第二个开放定址,冲突后用冲突的键再产生一个新的地址  QHash 默认情况下根据不同的键产生不同的哈希函数(提升搜索加密解密速度)。  QHash为了防止被针对攻击,默认情况下采用随机数生成哈希函数。...

2021-01-14 19:33:39 55

原创 opencv 转 QImage

  opencv 转 QImage  办法可能不是最优的,性能自己可以接受。判断图片类型图片本身类型是Float,直接转换成uchar图片本身类型是schar,直接转换成uchar判断图片通道单通道  构造一个跟图片尺寸一样,类型Format_Indexed8的图片。把像素索引改成0-255。QImagescanLine依次获取一列首地址,memcpy内存拷贝每次拷贝图片一列值。    三通道  QImage有一个构造函数,传入图片data首地址、长、宽、step、类型For

2021-01-14 19:33:02 59

原创 Qt 图像数据相关类

Qt 图像数据相关类  Qt 提供了几个类用来处理图像数据:Qt 图像数据相关类Qt 图像数据相关类QImageQPixmapQBitMapQIconQPicuterQImage  最常用的,对I/O操作进行优化。QPainter可以直接画上去读取、保存、操作像素都用QImage显示性能低于QPixmap支持十几种图像格式(Format)提供了一组函数,可以获取图片的各种信息、修改图片像素Qt的图像处理类只有QImage,其余几个仅仅是用于画图和显示。QPixmap  针.

2021-01-14 19:32:19 56

原创 软件推荐 VNote 程序员个人笔记神器

软件推荐 VNote 程序员个人笔记神器  由于嫌弃CSDN广告活动比较烦,前段时间重新搭建了自己的个人博客,分别体验了三个比较主流的开源知识体系。ZBlog + 拓源纯净主题WordPress + 默认主题MediaWiki + Tweeki + 设置仅自己可编辑  三个都体验过之后,最后留下了ZBlog。勉强用了ZBlog有半个月,编辑体验实在难受。搞得好像每天为了记笔记而记笔记。  冷静过后,想想自己写博客的初衷,再翻看自己写19年刚开始决定转行码农时写的博客。写博客主要是为了搭

2021-01-14 19:31:13 113

wei_zhi_chuan_gan_qi.zip

原来用qt写的一个位置传感器上位机使用案例。据说上传资源可以哪一个勋章,赶紧上传一个试试。

2020-04-05

WriteDcmSrc.zip

Study-VTK:利用ITK修改dcm标签(tags)https://blog.csdn.net/a15005784320/article/details/105456767

2020-04-12

CloseTheGap.py

利用vtk修复两个模型间的细缝。

2020-04-13

HalconTest.zip

https://blog.csdn.net/a15005784320/article/details/98204012 QT、HACLON 使用心得

2020-04-12

空空如也

空空如也

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

TA关注的人 TA的粉丝

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