自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (3)
  • 收藏
  • 关注

原创 医学超声模式简介

我们平时用于诊断的超声波是纵波,而剪切波是一种横波。这是一列垂直于发射超声波方向传导的能量微弱的机械波。只要让组织产生一定程度的震动或者形变,就可以在其周围出现剪切波传播。

2024-02-18 15:08:36 1266

原创 医用超声算法简介

也就是说,动态范围大时,每个色阶包涵的相邻强度的回波信号范围越广,而我们实际工作中运用到的回波信号范围(即低回声—强回声)往往只是动态范围的中间部分,以致于声像图中显示的色阶主要集中在中间部分,即表示低回声—强回声的色阶灰度相差无几,整体声像图呈现“灰蒙蒙”的雾样感觉,组织间的层次感反而下降。从另一个方向看,动态范围设置过低,超声仪很可能略过很多有用的疾病诊断信息,声像图中偏强回声与强回声、偏低回声与低回声变得无法细致分辨,而呈现出一片明亮的强回声或深邃的低回声,而其中有用的信息则损失殆尽。

2023-04-02 21:40:44 1061

原创 医学超声探头简介

医用超声检查设备简介

2023-04-01 21:51:18 1591

原创 使用vtk自带的多边形数据创建模型

使用vtk自带的多边形数据创建锥体

2022-07-17 16:27:06 373

原创 OpenGL抗锯齿

OpenGL抗锯齿

2022-07-17 11:15:14 101

转载 内存改写及检测

本文所讨论的“内存”主要指(静态)数据区、堆区和栈区空间。数据区内存在程序编译时分配,该内存的生存期为程序的整个运行期间,如全局变量和static关键字所声明的静态变量。函数执行时在栈上开辟局部自动变量的储存空间,执行结束时自动释放栈区内存。堆区内存亦称动态内存,由程序在运行时调用malloc/calloc/realloc等库函数申请,并由使用者显式地调用free库函数释放。堆内存比栈内存分配容量更大,生存期由使用者决定,故非常灵活。然而,堆内存使用时很容易出现内存泄露、内存越界和重复释放等严重问题。数

2022-03-05 15:52:24 572

原创 Qt界面Vtk交互

vtk事件,Qt槽vtkEventQtSlotConnect* _connections = vtkEventQtSlotConnect::New(); // update coords as we mouse pressed through the window_connections->Connect(_qvtkWidget->GetRenderWindow()->G...

2020-02-05 10:03:16 2277

原创 通过VTK显示PCL点云

void showPointCloud(pcl::PointCloud<pcl::PointXYZ>::Ptr pointCloud){ if(pointCloud->points.size() == 0){ warningWindow(STR_3D_IMAGE_ERROR_TITLE); return; } vtkSma...

2020-02-04 10:25:01 4144

原创 通过VTK显示STL模型

void showStlModel(const std::string& modelPath){ vtkSmartPointer<vtkSTLReader> stlReader = vtkSmartPointer<vtkSTLReader>::New(); stlReader->SetFileName(modelPath.c_str());/...

2020-02-04 10:21:33 1487

原创 基于Qt、vtk和pcl实现在Qt编写的UI上操作点云

通过深度学习算法学习点云块的位置和姿态,首先需要通过标注工具把点云块的位置和姿态标注出来,然后送到深度学习模型中进行学习,但是现在市面上只有2D图像的标注工具,没有开源的3D标注工具,这里介绍下3D标注工具的简单实现步骤1.相机采集2D图像和3D图像2.通过2D标注工具(labelme)标注2D图像3.3D标注工具读取2D标注结果,然后通过算法分割3D点云,通过vtk显示在UI上htt...

2020-02-04 10:14:40 1089 1

原创 Qt知识

1.QT自绘事件在QWidget中做自绘一般就是重写voidpaintEvent(QPaintEvent*event)函数,然后在这个函数里利用QPainter类进行绘制2.MOC全称是Meta-ObjectCompiler,也就是“元对象编译器”。Qt程序在交由标准编译器编译之前,先要使用moc分析C++源文件。如果它发现在一个头文件中包含了宏Q_OBJECT,...

2020-02-03 14:52:23 164

原创 行列式

1.行列式的定义行列式是由一些数据排列成的方阵经过规定的计算方法而得到的一个数。当然,如果行列式中含有未知数,那么行列式就是一个多项式。它本质上代表一个数值,这点请与矩阵区别开来。矩阵只是一个数表,行列式还要对这个数表按照规则进一步计算,最终得到一个实数、复数或者多项式。在二维平面中,矩阵行列式的绝对值代表一个平行四边形的面积,在三维空间中,矩阵行列式的绝对值代表一个平行六面体的体积:...

2020-02-03 12:19:46 1108 1

原创 根据2D图像mask分割点云块

前段时间做项目,其中一个步骤是根据深度学习识别出来的mask分割mask对应的点云块,然后计算点云块的位置和姿态,以供机器人抓取这里点云和mask都是mat格式,根据2D图像的mask分割点云块的关键函数式opencv中的copyTo函数,然后把分割后的mat格式的图像转换成pcl,转换方法参考https://mp.csdn.net/postedit/104144040...

2020-02-02 14:31:05 1598 7

原创 PCL点云分割-欧式距离分割

欧几里得算法使用邻居之间距离作为判定标准,而区域生长算法则利用了法线,曲率,颜色等信息来判断点云是否应该聚成一类找到空间中某点p10,有kdTree找到离他最近的n个点,判断这n个点到p的距离。将距离小于阈值r的点p12,p13,p14....放在类Q里在Q\p10里找到一点p12,重复1在Q\p10,p12找到一点,重复1,找到p22,p23,p24....全部放进Q里当...

2020-02-02 14:19:09 1726

原创 git使用总结

git init 初始化空的本地仓库(执行完命令,当前目录会自动生成git隐藏文件夹)git pull 拉最新代码git pull [short name] mastergit add 文件名:把文件添加到仓库git commit -m "备注说明":把文件提交到仓库git push :上传代码 git push origin master:把本地分支的数据推送到远程分支...

2020-02-02 14:12:44 125

原创 PCL点云配准-ICP

标准ICP算法是一种点集对点集配准方法(基于点-点距离的算法),标准的ICP算法需要粗配,满足距离足够近这一条件之后才能进行精确配准。选取目标点云P和源点云Q,按照一定的约束条件,找到最邻近点(pi,qi),然后计算出最优R和t(旋转和平移),使得误差函数最小,误差函数E(R,t):基本算法流程:1、在目标点云P中选取点集pi。2、在源点云Q中选取对应的点集qi,使得||qi-...

2020-02-02 13:45:08 627

原创 opencv Mat类型转换成PCL类型

pcl::PointCloud<pcl::PointXYZ>::Ptr ImageUtils::cvMatToPcl(cv::Mat &mat) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud = boost::shared_ptr<pcl::PointCloud<pcl::PointX...

2020-02-02 13:41:14 1215

原创 C++面试

c++ vector的底层实现原理vector底层是基于动态数组实现vector中v[i]和v.at(i)的区别v[5];//Av.at[5];//B如果v非空,A和B没有任何区别。如果v为空,B会抛出std::out_of_range异常。 c++标准不要求vecor<T>::operator[]进行下标越界检查,原因是为了提高效率。如果需要下标越界检查,使用at...

2020-02-02 13:32:01 253

原创 PCL点云分割-区域生长法

我概括的来说,就是从曲率小的面播种,从种子的位置出发,开始往四周搜索点,然后比对点于点之间的曲率和法线方向,如果差距小于阈值就视为同一个cluster。如果一个cluster无法再蔓延,在剩下的点云里再找曲率小的面播种,然后继续重复直到遍历完毕。基于颜色的区域生长分割 :原理上和基于曲率,法线的分割方法是一致的。只不过比较目标换成了颜色,去掉了点云规模上限的限制。可以认为,同一个颜色且挨得近,...

2020-02-02 10:33:51 2685 2

原创 PCL点云配准-正态分布变换

正态分布变换算法是一个配准算法(确定两个大型点云(都超过100,000个点)之间的刚体变换),它应用于三维点的统计模型,使用标准优化技术来确定两个点云间的最优的匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以时间比其他方法快。配准算法提供了点云配准变换的初始估:虽然算法不指定初值也可以运行,但是有了它,易于得到更好的结果,尤其是当两块点云差异较大时。配准分数通过计算output...

2018-11-14 15:51:09 654

原创 PCL提取深度图像边界

#include &lt;iostream&gt;#include &lt;boost/thread/thread.hpp&gt;#include &lt;pcl/range_image/range_image.h&gt;#include &lt;pcl/io/pcd_io.h&gt;#include &lt;pcl/visualization/range_image_visualize...

2018-11-14 15:45:15 1766

原创 PCL通过有序点云创建深度图像

#include <iostream>#include <boost/thread/thread.hpp>#include <pcl/common/common_headers.h>#include <pcl/range_image/range_image.h> //关于深度图像的头文件#include <pcl/io/pcd_...

2018-11-14 15:42:06 1027

原创 PCL获得深度图像

//如何获得深度图像#include &lt;pcl/range_image/range_image.h&gt; //深度图像的头文件int main (int argc, char** argv) { pcl::PointCloud&lt;pcl::PointXYZ&gt; pointCloud; //定义点云的对象 // 循环产生点云的数据 for (flo...

2018-11-14 15:40:26 685

原创 PCL中的OCTree

#include &lt;iostream&gt;#include&lt;pcl/point_cloud.h&gt;#include&lt;pcl/octree/octree_search.h&gt;#include &lt;vector&gt;#include &lt;ctime&gt;#include &lt;boost/concept_check.hpp&gt;int mai...

2018-11-10 18:47:35 763

原创 PCL使用VoxelGrid filter对点云进行下采样

体素的概念类似于像素,使用AABB包围盒将点云数据体素化,一般体素越密集的地方信息越多,噪音点及离群点可通过体素网格去除。另一方面如果使用高分辨率相机等设备对点云进行采集,往往点云会较为密集。过多的点云数量会对后续分割工作带来困难。体素滤波器可以达到向下采样同时不破坏点云本身几何结构的功能。VoxelGrid类通过输入的点云数据创建一个三维体素栅格,容纳后每个体素内用体素中所有点的重心来近似显...

2018-11-10 18:44:45 3225 2

转载 PCL中的KDTree

k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。K-D树是二进制空间分割树的特殊的情况。 一个KDTree的例子  上图的树就是一棵KDTree,形似二叉搜索树,其实KDTree就是二叉搜索树的变种。这里的K = 3.首先来看下树的组织原则。将每一个元组按0排序(第一项序号为...

2018-11-10 18:01:10 3800

原创 PCL点云读取和显示

#include &lt;iostream&gt; //标准输入输出流#include &lt;pcl/io/pcd_io.h&gt; //PCL的PCD格式文件的输入输出头文件#include &lt;pcl/point_types.h&gt; //PCL对各种格式的点的支持头文件#include &lt;pcl/visualization/cloud_viewer.h&gt; i...

2018-11-10 17:53:03 12118

原创 PCL点云条件滤波

条件滤波器通过设定滤波条件进行滤波,有点分段函数的味道,当点云在一定范围则留下,不在则舍弃。#include <iostream>#include <pcl/point_types.h>#include <pcl/filters/radius_outlier_removal.h>#include <pcl/filters/conditiona...

2018-11-10 17:43:01 3211 1

原创 PCL点云统计滤波

对每个点的邻域进行一个统计分析,并修剪掉一些不符合一定标准的点,稀疏离群点移除方法基于在输入数据中对点到临近点的距离分布的计算,对每一个点,计算它到它的所有临近点的平均距离,假设得到的结果是一个高斯分布,其形状是由均值和标准差决定,平均距离在标准范围之外的点,可以被定义为离群点并可从数据中去除。#include &lt;iostream&gt;#include &lt;pcl/io/pcd...

2018-11-10 17:41:25 2885

原创 PCL点云直通滤波

对于在空间分布有一定空间特征的点云数据,比如使用线结构光扫描的方式采集点云,沿z向分布较广,但x,y向的分布处于有限范围内。此时可使用直通滤波器,确定点云在x或y方向上的范围,可较快剪除离群点,达到第一步粗处理的目的。#include <iostream>#include <pcl/point_types.h>#include <pcl/filters...

2018-11-10 17:38:48 782

原创 PCL点云滤波(直通滤波器与统计滤波器)

利用PCL中的直通滤波器和统计滤波器对原始点云数据进行滤波处理。通过直通滤波器将Z轴方向上范围之外的点滤除(在背景与前景有一定距离的情况下,可以除掉背景),再利用统计滤波器去除离群点(噪声点)。 滤波效果视数据和滤波参数而定。#include &lt;pcl/common/common_headers.h&gt;#include &lt;iostream&gt;#include &lt...

2018-11-10 17:36:50 1677

转载 手眼标定(九点法)

所谓手眼系统,就是人眼镜看到一个东西的时候要让手去抓取,就需要大脑知道眼镜和手的坐标关系。如果把大脑比作B,把眼睛比作A,把手比作C,如果A和B的关系知道,B和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标关系也就知道了。 相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。 在实际控制中,相机检测到目标在图像中的像素位置后,通...

2018-08-24 21:14:01 66784 14

转载 UNIX环境高级编程 源代码编译apue.h头文件的问题

从网站http://www.apuebook.com/1)下载《UNIX环境高级编程》原代码src.tar.gz2)用命令tar -xvf src.tar.gz 解压,产生apue.2e文件夹3)执行make通常会出现编译不过的情况。[分析]:提示 "错误:apue.h:没有那个文件或目录".apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函

2017-10-19 16:52:18 360

原创 接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写

#include<iostream> #include<sstream> using namespace std; int main() { string str; while (getline(cin, str)) { char ch; string str2; getline(...

2017-08-24 17:08:13 4717 1

原创 计算字符串最后一个单词的长度,单词以空格隔开

#include<stdio> #include<string> int main() { char str[128]; gets(str); int count=0; int len=str; for(int i=(len-1);i>=0;i--) { if(str[i]!=' '...

2017-08-24 17:07:53 649

转载 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。

给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。

2017-08-24 17:06:53 2357

原创 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。

输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。

2017-08-24 17:05:35 499

原创 找出字符串中第一个只出现一次的字符

#include <iostream> #include <string> using namespace std; int main() { string str; while(getline(cin,str)) { unsigned int i; for (i=0;i<st...

2017-08-24 17:04:32 538

原创 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

2017-08-18 12:47:52 1195

转载 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组

连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组

2017-08-18 12:47:06 7390

ios视频教程.rar

ios基础视频教程 ios中级教程 ios高级教程之项目实战 ios补充资料 swift 入门到精通视频教程 iphone开发 一周快速上手 等等

2020-02-22

matlab视频教程.rar

Matlab GUI初学者视频教学 Matalb Simulink视频教学 Matlab 建模和系统控制教学视频 Matlab 图像处理视频教学 Matlab 数学运算视频教学 等等

2020-02-22

imageBasics.rar

OpenCV不是唯一的图像库,它只是许多图像库里使用比较广泛地一个。不过,多数图像库的原理大同小异。希望读者了解OpenCV对图像的表示后,能够理解其他库中图像的表达,从而在需要的时候自己处理。本例从公式出发计算畸变前后的图像坐标

2020-02-05

空空如也

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

TA关注的人

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