- 博客(70)
- 资源 (1)
- 收藏
- 关注

原创 如何将excel中的数据导入到matlab程序中绘制三维散点图
今天想把提取的刀位点信息用matlab验证一下,于是就探索了到底如何实现首先展示一下刀位点信息,包含x、y、z坐标信息和n、o、a(工具末端的方向)实际上并没有用那么多信息,只用了x、y、z信息,打开matlab,红色的“导入数据”选择要导入的数据,然后将输出类型选为“数值矩阵”,再点击“导入所选内容”这时数据就已经导入到matlab中再分离出单独的x、y、z向量,使用plot3...
2020-03-02 20:11:42
16783
3
原创 MATLAB点云处理:PCL读取点云数据报错:Failed to find match for field ‘x‘/ ‘y‘/ ‘z‘.
PCL读取点云数据报错:Failed to find match for field ‘x‘/ ‘y‘/ ‘z‘.在matlab保存点云时候,需要转换为单精度// matlabpt=pointCloud(singele(dianyun));pcwrite(pt,'filename')
2021-10-21 15:47:15
1010
2
原创 MATLAB点云处理:4点云变换及显示
这次记录一下对点云进行变换和显示的另一个函数pcshowpair点云变换如果是刚性变换,一般是齐次变换矩阵,包含旋转和平移两个部分,MATLAB提供了函数rigid3d来构建矩阵tform = rigid3dtform = rigid3d(t)tform = rigid3d(rot,trans)这里简单说一下这3种构造方法1. tform = rigid3d是直接建立一个R=I,t =[0 0 0]的齐次变换矩阵2. tform = rigid3d(t)这里需要我们自己把齐次变换矩阵
2021-10-06 23:43:18
3934
12
原创 MATLAB点云处理:3提取区域点云中感兴趣的点
MATLAB点云处理:1点云的读取、显示和保存MATLAB点云处理:1点云的读取、显示和保存MATLAB点云处理:2点云法向量计算和最近点查询、通过索引提取点云MATLAB点云处理:2点云法向量计算和最近点查询、通过索引提取点云这次提一下MATLAB点云处理中的一个函数findPointsInROI(region of interest),简单来说就是根据坐标的范围,返回一个对应点云中的序列,通过select函数就可以进一步提取出对应的点云废话不多说,还是经典的兔子案例rabbit = pcre
2021-10-03 17:09:34
4828
原创 MATLAB点云处理:2点云法向量计算和最近点查询、通过索引提取点云
上一次记录了MATLAB点云处理:1点云的读取、显示和保存MATLAB点云处理1这次继续写MATLAB点云处理:2点云最近点查询和法向量计算、通过索引提取点云这次主要是点云的法向量计算和最近点查询法向量计算MATLAB提供了函数pcnormals用于计算点云的法向量,下面用经典的兔子展示一下clc,clearrabbit = pcread('rabbit.pcd')通过上述代码,点开加载的兔子,可以看到里面是没有Normal属性的然后通过rabbit_normals = pcno
2021-10-03 12:10:20
4617
7
原创 MATLAB点云处理:1点云的读取、显示和保存
本文作为MATLAB点云学习记录的开篇,介绍MATLAB读取、显示和保存点云的内容点云读取读取非PCD和PLY格式的文件点云显示点云保存点云读取MATLAB能够读取PLY或者PCD格式的文件rabbit = pcread('rabbit.pcd')这里读取了那个著名的兔子点云,获取了一个pointCloud对象,这个pointCloud对象包含的属性有Location 包含了所有的点信息,每个点的x y z构成一行Count 点的总个数XLimit YLimit ZLimit 分
2021-09-25 20:47:01
22757
9
原创 专利修改:solidworks出线条图
专利修改的时候,要求的图片是线条图,这个时候彩色的模型就需要换成黑白的线条,由于经常使用solidworks,就简单学习了一下这个过程下面附上一位老哥的博客,我也是看他的博客学习的,但还是自己记录一下这个过程学习的博客导入模型,调整背景颜色(基本布景的背景-白色背景双击即可)调整模型的显示格式一般默认是显示实体,后三种就是需要的线条图,这里可以设置视角可见、虚线显示、所有线条实线显示 三种显示模式,可以自己试试,一般视角可见常用图片输出,可以去看上面博客老哥写的,我一般就直接截图了.
2021-08-19 16:26:20
18995
2
原创 专利修改:ps换填充色
最近需要修改专利,需要将原本背景为灰色的图片换成白色,因为专利需要黑白线条图导入图片后,ctrl+l导出色阶选择第三个吸管点一下背景就好了这里就不展示处理的结果了
2021-08-19 15:44:20
385
原创 matlab进行全排列问题
% 用1 2 3 4 5 6 生成10个位置的全排列[a,b,c,d,e,f,g,h,i,k] = ndgrid(1:6);A=[a(:),b(:),c(:),d(:) e(:) f(:) g(:) h(:) i(:) k(:)];[m,n] = size(A)res = 0for i = 1:m tmp = A(i,:); result_mark = 0; for j = 1:6 if(ismember(j,tmp)) result
2021-06-01 22:40:35
2509
原创 学习遗传算法一、用遗传工具箱求解单变量和多元函数极值
首先是单个变量函数的最小值% 学习遗传算法,第一个案例:用遗传算法工具箱计算一元函数最小值% 2021.5.30clcclearfigure;hold on%定义自变量的范围lb = 1; ub = 2;ezplot('sin(10*pi*X)/X',[lb,ub]);xlabel('自变量/X')ylabel('函数值/Y')%%定义遗传算法参数NIND = 40 %种群大小MAXGEN = 20 %最大遗传代数PRECI = 20 %个体长度GGAP = 0.9
2021-05-31 20:36:36
628
原创 打开gazebo卡在黑屏加载不进去的处理
出现这个情况的原因是由于缺少模型导致的,这时需要提前把模型下载好并放在指定目录下cd ~/.gazebo/mkdir -p modelscd ~/.gazebo/models/wget http://file.ncnynl.com/ros/gazebo_models.txtwget -i gazebo_models.txtls model.tar.g* | xargs -n1 tar xzvf下载模型的时间比较长,但是完成之后就可以顺利进入gazebo的仿真环境中...
2021-04-17 21:19:52
831
原创 二、建立一个属于自己的ROS功能包,开启hello world
在一、ROS小乌龟到工作空间建立,再到安装RoboWare中实现了工作空间的建立和安装RoboWare,下面开始建议一个自己的功能包在ROS中建立一个属于自己的功能包,其实很简单,首先需要进入到工作空间的src目录下,这里是存放自己的功能包的地方cd catkin_ws/src然后catkin_create_pkg my_ros_pkg roscpp rospy std_msgs这里使用了catkin_create_pkg 建立了一个名为my_ros_pkg的功能包,包的依赖包括roscpp、
2021-04-17 19:16:23
425
原创 当ubuntu遇到error: dpkg frontend is locked by another process
在ubuntu里做仿真的时候经常遇到error: dpkg frontend is locked by another process这里可以直接复制下面的语句,然后就可以安装啦sudo rm /var/lib/dpkg/locksudo rm /var/lib/dpkg/lock-frontend sudo rm /var/cache/apt/archives/lock ...
2021-04-17 18:22:39
1946
2
原创 从NC程序中提取路径点的XYZ
本程序是用来提取数控代码的NC程序中路径点的XYZ坐标,并保存到文件中,用于后续文件的处理//此程序用于提取NC代码中的XYZ坐标#include <iostream>#include <fstream>#include <sstream>#include <vector>struct Mypoint{ float x; float y; float z;};using namespace std;//利用空格分割字符串函数v
2021-04-12 20:19:25
16435
原创 一、ROS小乌龟到工作空间建立,再到安装RoboWare
许多人说,小乌龟是ROS的灵魂,对于刚入门的同学来说,还是很难理解的,选择小乌龟能够方便的理解ROS的消息传递机制。小乌龟键盘控制1、首先启动主节点roscore2、启动小乌龟仿真节点rosrun turtlesim turtlesim_node龟的样式是随机的3、键盘控制小乌龟运行rosrun turtlesim turtle_teleop_key通过控制键盘的上下左右就可以实现小乌龟的移动了建立ros工作空间mkdir -p catkin_ws/srcc
2021-03-27 14:37:37
360
原创 PCL使用RadiusOutlierRemoval进行过滤
#include <iostream>#include <pcl/point_types.h>#include <pcl/filters/radius_outlier_removal.h>#include <pcl/filters/conditional_removal.h>#include <pcl/io/pcd_io.h>#include <pcl/visualization/cloud_viewer.h>int mai
2021-01-15 11:10:05
822
2
原创 PCL分割提取平面
#include <iostream>#include <pcl/ModelCoefficients.h>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/sample_consensus/method_types.h>#include <pcl/sample_consensus/model_types.h>#include <pcl
2021-01-14 19:19:45
1983
4
原创 PCL将点向平面投影
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/ModelCoefficients.h>#include <pcl/filters/project_inliers.h>#include <pcl/visualization/pcl_visualizer.h>int main (int argc, ch
2021-01-14 09:48:11
3925
8
原创 PCL滤波器移除离群点
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/visualization/pcl_visualizer.h>#include <pcl/filters/statistical_outlier_removal.h>int main(){ pcl::PointCloud<pcl::PointXYZ>
2021-01-13 19:21:54
307
原创 PCL使用VoxelGrid进行点云采样
#include<iostream>#include<pcl/point_types.h>#include<pcl/filters/voxel_grid.h>#include <pcl/io/pcd_io.h>#include <pcl/visualization/cloud_viewer.h>int main(int argc,char** argv){ pcl::PointCloud<pcl::PointXYZ>::P
2020-12-28 20:00:01
480
原创 pcl直通滤波
#include <iostream>#include <pcl/point_types.h>#include <pcl/filters/passthrough.h>#include <pcl/visualization/cloud_viewer.h>//直通滤波int main(int argc,char** argv){ pcl::PointCloud<pcl::PointXYZ>::Ptr my_cloud(new pcl::P
2020-12-27 16:48:47
281
原创 图像边界提取——canny算法
%利用canny算子提取边缘clc,clear% 读入图片rice_img = imread('rice.jpg');figure,imshow(rice_img);title('原始图像')[m,n] = size(rice_img);%%%对图像进行高斯平滑,选用的模板为3*3的模板% 生成高斯模板[x,y] = meshgrid([-3:3],[-3:3]);sigma = 0.5;h = exp(-(x.*x+y.*y)./(2*sigma^2))/(2*pi*sigma^2
2020-12-11 16:43:21
941
原创 如何利用matlab显示图像的方向矢量图
[X,Y] = meshgrid(1:256,1:256);[px,py] = gradient(rice_img_Gauss);quiver(X,Y,px,py)放大后的效果
2020-12-10 20:40:00
1257
原创 PCL学习:采样一致性
#include <iostream>#include <pcl/sample_consensus/ransac.h>#include <pcl/sample_consensus/sac_model_plane.h>#include <pcl/sample_consensus/sac_model_sphere.h>#include <pcl/visualization/pcl_visualizer.h>#include <pcl/p
2020-12-07 19:13:10
270
原创 VM虚拟机安装ubuntu16.04 + ROS安装kinetic版本(2)
这个博客间隔的有点久,本来是打算先写安装虚拟机,然后再写安装ROS的,我这个人比较懒,属于那种,我弄明白了这个事情后就没有动力的那种,但是今天偶然发现一个便捷安装ROS的方法,感觉还是有必要把这篇博客完善一下。那么到底是什么引起了我的注意呢?就是它——ubuntu系统下自动化安装ROS的脚本,来自ROS小课堂的官网,自己亲试了一下,真的是又快又好!!!首先下载autoInstallROS.sh这个脚本文件,可以在ROS小课堂的官网下载,我这边也提供一个下载链接链接:https://pan.baidu.
2020-12-05 15:11:11
192
1
原创 PCL学习:octree进行快速查找
#include <pcl/point_types.h>#include <pcl/octree/octree.h>#include <iostream>#include <vector>#include <ctime>int main(){ srand(time(NULL)); pcl::PointCloud<pcl::PointXYZ>::Ptr my_cloud(new pcl::PointCloud<pcl
2020-12-02 17:14:24
402
原创 PCL学习:快速领域搜索kd-tree
#include <iostream>#include <pcl/point_cloud.h>#include <pcl/kdtree/kdtree_flann.h>#include <pcl/io/pcd_io.h>#include <vector>#include <cmath>#include <ctime>int main(){ srand(time(NULL)); pcl::PointCloud
2020-12-02 15:08:47
258
原创 matlab图像处理:边界跟踪
设一幅二值图像中,只有一个白色区域,试给出求该区域外围轮廓线的方法(要求按顺时针的顺序给出各点的坐标,即行/列号)上面是题目的要求,提取图像的外边界轮廓和内边界轮廓,相对比较简单,但是困难的是这个按照顺时针或者逆时针把这个坐标输出,可能许老师就是想让我们用他讲解的ppt的方法,这里赞一波许向阳老师,确实讲解的很透彻!!!下面是实现的代码%边界跟踪并实现顺时针输出clear;clc;img = imread('hb.png');% 对图像进行二值化操作img = rgb2gray(img.
2020-10-27 16:51:37
4493
3
原创 matlab实现K-means聚类
clear;clc;% 随机生成二维数据点n_max = 10;n = 0;point_data = rand(2,100)*200;% 绘制原始点的分布 K = 3;% 随机生成了K个中心点center = rand(2,3)*200;while n<n_max% 计算距离,进行分类 h1 = (center(:,1) - point_data).^2; h2 = (center(:,2) - point_data).^2; h3 = (center(
2020-10-15 16:14:44
552
原创 matlab实现ostu法图像分割
img= imread('rice.png');img = medfilt2(img);subplot(1,2,1),imshow(img);title('原图像')[M,N] = size(img);sum_total = sum(img(:));ave_total = sum_total/(M*N);[a,b] = imhist(img);a = a';b = b';T_optimal = 1;h_max =0;for T=2:255% 将直方图分开 a1 =
2020-10-14 22:32:05
2977
2
原创 matlab图像处理实现低通滤波
clc;clear all;img=imread('lena.jpg');img_noise = imnoise(img, 'gaussian', 0, 0.01);subplot(2,2,1),imshow(img_noise);title('原图像');% 将低频移动到图像的中心,这个也很重要s=fftshift(fft2(img_noise)); subplot(2,2,3),imshow(log(abs(s)),[]);title('图像傅里叶变换取对数所得频谱');% 求解变换
2020-10-14 21:19:33
16199
12
原创 matlab图像最大值和最小值滤波
clear;clc;img = imread('rice.png');[M,N] = size(img);% 最大值滤波for i = 2:M-1 for j=2:N-1 t = img(i-1:i+1,j-1:j+1); new_img_max(i,j) =max(t(:)); endend% 最小值滤波for i = 2:M-1 for j=2:N-1 t = img(i-1:i+1,j-1:j+1);
2020-10-13 20:05:48
6625
原创 图像锐化的模板操作
图像增强(锐化)相关算子这篇文章介绍了很多算子,并进行了测试结合之前写的图像平滑的算法,我简单写了一个用模板操作的代码clear;clc;img = imread('rice.png');% 拉普拉斯算子T = [0 -1 0;-1,4,-1;0,-1,0];[M,N] = size(img);img = double(img);for i =2:M-1 for j=2:N-1% 下面这一步是精华 t = img(i-1:i+1,j-1:j+1)
2020-10-13 17:24:36
2037
原创 matlab图像锐化的实现
clear;clc;img = imread('rice.png');subplot(1,4,1);subimage(img);title('原图像');[m,n] = size(img);img = double(img)for i = 1:m-1 for j =1: n-1 new_img1(i,j) = sqrt((img(i,j)-img(i+1,j))*(img(i,j)-img(i+1,j))+(img(i,j)-img(i,j+1))*(img(i,j)
2020-10-13 16:50:54
1523
原创 matlab实现图像中值滤波的方法
img = imread('rice.png');img2 = imnoise(img,'salt & pepper');subplot(1,3,1);subimage(img);title('原图像');subplot(1,3,2);subimage(img2);title('加入噪声的图像');% 对加入噪声的图像进行处理[m,n] = size(img);for i = 2:m-1 for j = 2:n-1 t = img(i-1:i+1,j-1:
2020-10-13 15:21:14
1148
原创 matlab利用生成的高斯模板,对图像进行操作
clear;clc;% 生成高斯模板[x,y] = meshgrid([-3:3],[-3:3]);sigma = 0.5;h = exp(-(x.*x+y.*y)./(2*sigma^2))/(2*pi*sigma^2)% 接着进行归一化处理sumh = sum(h(:))h = h/sumh;% 模板已经生成,接下来开始模板处理图像img = imread('lena.jpg');[M,N] = size(img);img = imnoise(img,'salt & pe
2020-10-09 11:23:31
623
原创 matlab实现高斯模板的生成
[x,y] = meshgrid([-3:3],[-3:3]);sigma = 0.5;h = exp(-(x.*x+y.*y)./(2*sigma^2))/(2*pi*sigma^2)% 接着进行归一化处理sumh = sum(h(:))h = h/sumhfspecial('gaussian',7)结果一致,很ok
2020-10-09 10:00:03
914
原创 matlab实现直方图均衡化和规范化
直方图均衡化clear;clc;img = imread('lena.jpg');[a,b] = imhist(img);[M,N] = size(img);new_img = zeros(M,N);stem(b,a/(M*N));% 下面开始统计概率密度分布t(1) = a(1);for i=2:256 t(i) = a(i)+t(i-1);endfor m=1:M for n=1:N new_img(m,n) = t(img(m,n)+1)/(M*
2020-10-08 22:06:36
1711
原创 图像加入噪声
cv::Mat salt(cv::Mat img, int n){ int i, j; for (int k = 0; k < n; ++k) { i = std::rand() % img.cols; j = std::rand() % img.rows; if (img.type() == CV_8UC1) { img.at<uchar>(j, i) = 0; } else if (img.type() ==CV_8UC3) { img.
2020-10-04 18:26:27
165
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人