智能家居
文章平均质量分 73
落叶霜霜
这个作者很懒,什么都没留下…
展开
-
【OpenCV实现平滑图像形态学变化】
它的基本思想是通过内核的滑动,只要内核下的像素中有一个为1,中心像素就会被赋值为1(这类似于逻辑或运算)。在前面的例子中,我们手动创建了一个矩形内核,但在实际应用中,可能需要不同形状和大小的内核。使用cv.erode()函数,我们可以将内核滑动在图像上,将内核覆盖下的像素点都为1时,中心像素点就会被赋值为1,其他时候都为0,从而缩小白色区域。在腐蚀操作中,一个内核(kernel)在图像上滑动,如果内核覆盖下的所有像素都为1(即白色,表示前景物体),那么中心像素点就会被赋值为1,否则被腐蚀掉(赋值为0)。原创 2023-10-27 21:12:34 · 648 阅读 · 0 评论 -
【OpenCV实现平滑图像处理】
高斯滤波仅仅是一个空间函数,即在滤波时只考虑相邻像素的值。举个例子,如果我们想在一幅图像上尝试平均滤波,我们可以使用一个简单的平均核,该核中的所有元素值相等,代表了平均操作。然而,需要注意的是,模糊操作也会稍微模糊图像的边缘,尽管有一些特殊的模糊技术可以保持边缘的清晰度。定制的低通滤波器可以根据图像特性进行调整,例如在面对强烈噪音时增加滤波器的大小,或者根据图像中对象的大小调整滤波器的标准差。中值模糊是一种特殊的滤波技术,它的原理是在核的覆盖区域内找到像素值的中间值,并将中间值赋给核中心的像素点。原创 2023-10-26 19:29:26 · 1046 阅读 · 0 评论 -
【Python数据分析工具】
Matplotlib是一个用在 Python中绘制数组的2D 图形库,虽然它起源于模仿MATLAB图形命令,但它独立于MATLAB,可以通过Pythonic和面向对象的方式使用,是Python中最出色的绘图库。最后,数据分析的结果需要以可视化的方式呈现。总的来说,数据分析是一个多层次、多阶段的过程,涵盖数据的获取、清洗、分析和可视化。Seaborn是Python中基于Matplotlib的数据可视化工具,它提供了很多高层封装的函数,帮助数据分析人员快速绘制美观的数据图形,从而避免了许多额外的参数配置问题。原创 2023-10-15 21:10:37 · 537 阅读 · 0 评论 -
【OpenCv光流法进行运动目标检测】
随着计算机视觉技术的迅猛发展,运动目标检测在图像处理领域中扮演着至关重要的角色。在现实世界中,我们常常需要追踪视频中的运动目标,例如交通摄像头中的车辆、安防监控中的行人,甚至是自动驾驶领域中的车辆和行人。为了实现高效准确的运动目标检测,研究者们提出了各种各样的方法。在众多运动目标检测方法中,光流法(Optical Flow)是一种经典且有效的技术。光流法通过追踪图像中像素点的运动轨迹,可以帮助我们实时了解运动目标的位置和速度信息。它不仅在实时性上具有优势,还在处理各种环境和运动类型下都表现出色。原创 2023-10-13 15:54:16 · 1926 阅读 · 0 评论 -
【关闭wandb:yolov5训练报错Wandb wandb.errors.UsageError: api_key not configured (no-tty).】
第三个就是禁用 Wandb:如果你不想使用 Wandb 进行实验跟踪,可以通过注释相关的代码行来禁用它。查找以 wandb.init 或 wandb_logger 开头的行,并使用 # 符号将它们注释掉。跑yolov5训练官方代码出现下面的问题,第一个方法就是关闭代理网络vpn,直接运行,阻止数据上传。将 “YOUR_API_KEY” 替换为你实际的 API 密钥。第二个方法就是老老实实注册。原创 2023-08-03 17:14:12 · 2636 阅读 · 0 评论 -
【yolov7报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode bytein position 2: illegal multibyte sequenc】
重新运行,如果在运行依旧报错,很大可能是读取的文件yaml不是utf-8的编码格式,需要检查编码格式,较为繁琐,建议去官网重新下载yolov7,重新运行。通过添加encoding='utf-8’参数,告诉Python在读取文件时使用utf-8编码,以解决UnicodeDecodeError的问题。这篇文章讲述的是python代码运行出错,可以参考这个文章,适用于代码少,找得到打开文件的代码使用。问题是系统的默认编码格式是GBK,而读取的yaml配置文件使用了其他编码格式。这里直接给出代码修改部分。原创 2023-08-03 16:54:15 · 888 阅读 · 0 评论 -
【win11+Visual Studio 2019 配置 PCL 1.12.1 的经验总结分享】
如果不是1.12.1,那么lib文件可能有一点不一样,pcl前面部分的lib文件大多数是一样的,只有和VTK中的lib文件C:\Program Files\PCL 1.12.1\3rdParty\VTK\lib里面的文件相差较大可以用以下命令取出来。和VTK中的lib文件C:\Program Files\PCL 1.12.1\3rdParty\VTK\lib这两个位置的lib文件。那么文件名字在相对的文件,debug以及release的lib文件。7)链接器-》输入-》附加依赖项-》编辑,添加lib文件。原创 2023-06-19 15:31:05 · 1996 阅读 · 1 评论 -
【ROS实操3服务调用添加乌龟数量】
分别是x,y坐标,唯一需要注意的是theta是乌龟的脑袋朝向,是用弧度来做单位的,3.14为一弧度,要想朝上,就是一半的弧度,就是1.57.编码实现向turtlesim 发送请求,在乌龟显示节点的窗体指定位置生成一乌龟,这是一个服务请求操作。用c++实现,需要的功能包有roscpp,rospy,std_msgs,turtlesim。3.启动roscore、turtlesim_node、乌龟生成节点,生成新的乌龟。2.要通过ROS命令,来获取乌龟生成服务的服务名称以及服务消息类型。2.编码实现服务请求节点。原创 2023-04-16 18:10:20 · 821 阅读 · 0 评论 -
【ROS实操2话题订阅输出乌龟位姿】
已知turtlesim中的乌龟显示节点,会发布当前乌龟的位姿(窗体中乌龟的坐标以及朝向),要求控制乌龟运动,并时时打印当前乌龟的位姿。3.启动roscore、turtlesim_node、控制节点以及位姿订阅节点,控制乌龟运动并输出乌龟的位姿。在plumbing_test下面新建launch文件,然后新建文件start_turtle.launch。如果原背包里有turtlesim,则不需要添加,如果没有,则需要添加配置文件。1.首先,需要启动乌龟显示以及运动控制节点并控制乌龟运动。原创 2023-04-16 16:58:23 · 1280 阅读 · 1 评论 -
【用python将文件夹下面的文件夹里面的文件全部提取出来,并且放到一个新的文件夹】
如果你想复制其他类型的文件,你可以更改if file.endswith(‘.jpg’)这一行的条件,就可以了。比如说:我的faces95文件夹下面有95个文件,每个文件下面有十七到十八个照片不等。如果文件较大,需要的python运行时间会更长一点,需要耐心等待。改为自己的需要放置的文件路径,默认是新建文件,自己新建也可以。可以使用Python的os和shutil库来完成这个任务。跑出来的结果在指定的文件路径中查看,比如我的在桌面上,就是。改为自己的需要提取的文件路径。原创 2023-04-13 13:00:13 · 2969 阅读 · 0 评论 -
SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \UX
这个错误是因为在路径字符串中使用了反斜杠 (),这是Python中的转义字符。当Python解释器尝试解释字符串中的转义序列时,它无法识别反斜杠后面的字符,因此会引发 SyntaxError 错误。使用原始字符串 (r"") 来表示路径字符串,这将禁用Python解释器对反斜杠的转义。在路径字符串中使用双反斜杠 () 替换单个反斜杠 ()。原创 2023-04-12 15:20:38 · 18124 阅读 · 0 评论 -
将fisheriris、COIL20与MNIST三个数据集输入图正则化非负矩阵分解算法中再通过Kmeans聚类评价(精度、NMI)
GR-NMF 是一种常用的矩阵分解算法,它能够自动提取数据中的潜在特征,并生成一组非负的基向量和系数矩阵。接下来,可以使用 Kmeans 聚类算法对这些数据点进行聚类,并计算聚类结果的精度和 NMI。Kmeans 是一种基于距离的聚类算法,它将数据点划分为 K 个簇,使得每个簇内部的数据点尽可能相似,不同簇之间的数据点尽可能不同。首先,需要对三个数据集进行预处理,即将它们转换成图像矩阵的形式,并将它们进行归一化处理,使得每个像素值在[0,1]之间。原创 2023-04-12 14:17:24 · 331 阅读 · 0 评论 -
【ROS话题通信自定义msg 最细节版本】
其中message_generation是编译时的依赖文件,message_runtime是执行时所依赖的文件。find package 编译时依赖,catkin_package运行时候的依赖,少了哪一个都会有问题·。修改add_message_files(),先解开注释,然后把自己定义的msg文件放进去。②编辑配置文件,包括package.xml和CMakeLists.txt两个文件的配置。python的文件在devel下面的lib下面的msg文件下面。查看中间文件的地方c++的文件在。原创 2023-03-24 13:47:45 · 115 阅读 · 0 评论 -
话题通信 C++订阅者的实现与问题分析3
编写发布订阅实现,要求发布方以10HZ(每秒10次)的频率发布文本消息,订阅方订阅消息并将消息内容打印输出。然后,cuihua为节点名字,命名可以随机为英文数字下划线,不可以用空格。然后ctrl+shift+b,编译文档。首先在src目录下创建新建文件:demo02_sub.cpp。就可以看到如下图所示的发送方发送,订阅方订阅输出。创建订阅者对象,然后domsg没有需要编写。两个终端,一个启动发送方,一个启动订阅方。水平分割,或者是竖直分割一个新终端。1.编写发布方实现;2.编写订阅方实现;原创 2023-03-23 16:49:57 · 148 阅读 · 0 评论 -
【RLException: roscore cannot run as another roscore/master is already running. 解决办法,最全】
根据错误提示,你的ROS系统已经存在一个正在运行的ROS核心(roscore)进程,因此需要杀死该进程才能启动一个新的roscore进程。如果仍然存在问题,可以检查ROS_MASTER_URI是否正确设置。以上是所有解决以下问题的所有方法,如果上述方法都不能够成功,最后一个办法就是:重启。Ubuntu系统关机重启,重新打开终端,然后进行roscore。如果搜索出来的结果与下面一致,说明问题不在这里。虚拟机里面可以关闭虚拟机,然后重新打开虚拟机。运行roscore提示下面的错误。但是下面的命令没有用。原创 2023-03-23 14:59:08 · 3078 阅读 · 0 评论 -
话题通信 C++发布者的实现与问题分析2
上述文章里面只针对发布者的简单逻辑实现,只能保证发布方的正常通信,下面按照该需求进行代码改进实现,也就是说这篇文章才是真正的完成需求的部分。因为发布的数据是中文,所以需要在int main();第一句加上下面的代码,可以显示输出中文。//要求以10hz的频率发布数据,并且,文本后添加编号。ctrl+alt+b,保存编译运行。//5.编写发布逻辑并发布数据。到这里发布方实现完毕。原创 2023-03-23 14:24:32 · 287 阅读 · 0 评论 -
话题通信 C++发布者的实现与问题分析
编写发布订阅实现,要求发布方以10HZ的频率发布文本消息,订阅方订阅消息并将消息内容打印输出。自定义功能包的名字,这里定义为plumbing_pub_sub,键入enter。这个echo后面的fang来源于c++代码里面,创建的发布者对象里面的。然后打开src下的src文件里面的cmakelists.txt文件。没有任何反应是正常的,如果想要看到反应,可以调用以下命令查看。检验一下,打开终端ctrl+alt+t,输入roscore。如果输入roscore,出现以下的情况。关闭这个终端,重现打开一个终端。原创 2023-03-22 14:06:34 · 332 阅读 · 3 评论 -
RLException: Invalid roslaunch XML syntax: mismatched tag: line 3, column 2报错
1.如果是line 1, column 0,说明文件没有保存成功,将launch文件关闭,保存后重新打开运行。比如我的代码就是下面的报错后,line 3, column 2,把第三行的launch加上/不报错。2.如果第一种解决方法解决不了,错误显示的不是 line xx, column xx,键入crtl+shift+b编译成功,但是roslaunch就是报出以下错误的解决办法。那就是格式问题,可能是少了/或者是< >三个中的一个。比如line 3, column 2。改成下面这样,就不会报错。原创 2023-03-19 21:38:02 · 1936 阅读 · 0 评论 -
ros机器人输出端有中文乱码
当ROS_INFO终端输出有中文时,会出现乱码。在函数开头加入下面代码的。原创 2023-03-19 14:53:56 · 341 阅读 · 0 评论 -
【Ubuntu系统ros机器人集成开发环境的vscode环境配置(适合刚下载vscdoe时候使用)】
然后按住快捷键ctrl + shift +B,如果显示如下图所示,表明保存成功,以后按住这三个快捷键就是编译的意思。然后打开.vscode文件夹下面的c_cpp_properties.json文件。自定义功能包的名字,这里定义为hello_vscode,键入enter。可以点击配置设置为默认,修改.vscode/tasks.json文件。然后打开src下的src文件里面的cmakelists.txt文件。双击tasks.json文件,删除所有的代码,粘贴下面的代码。右键src文件,新建文件。原创 2023-03-19 14:08:18 · 461 阅读 · 0 评论 -
【u盘格式化不了怎么办?】
在某些情况下,格式化工具可能无法正确识别U盘,导致无法启动格式化过程。第1步:U盘与电脑连接成功后,打开运行窗口(可以通过【Win+R】组合键打开),在输入框输入【cmd】,点击【确定】;有时候,U盘出现故障,一直提示我们把它格式化,但是又无法操作,u盘格式化不了怎么办?第2步:接着在DOS窗口输入【format F: /fs:fat.32】,其中的F是代表U盘的盘符,点击回车;使用U盘,一直提示格式化,但是U盘格式化不了怎么回事?原因4:有些U盘有开关,如果开关被锁住,U盘就会变为只读模式,无法格式化。原创 2023-03-15 12:56:15 · 3620 阅读 · 0 评论 -
ubuntu系统使用下载文件解压时候不断在报错原因分析以及解决办法
从百度网盘的官方网站上找到适用于 arm64 架构的软件包,下载后再使用 dpkg 命令进行安装。2.先确认在执行该命令时所处的目录是否包含了该文件,如果不是,用 cd 命令切换到包含该文件的目录中。如果您确认该文件存在于当前目录中,那么该文件可能是一个未完成的下载文件(.crdownload),可能没有下载完整或者被损坏了。Unconfirmed 200992.crdownload 是一个文件名,但它包含了空格,因此需要在命令中使用引号将整个文件名括起来,以便正确解析文件名。原创 2023-03-14 21:55:38 · 1345 阅读 · 0 评论 -
Ubuntu系统下载tar.gz失败显示disk fulled
如果无法立即释放足够的磁盘空间,可以尝试使用临时目录来下载文件。在 Ubuntu 系统中,可以使用 “TMPDIR “环境变量来指定临时目录。在 Ubuntu 系统中下载 tar.gz 文件时遇到了磁盘空间不足的错误提示,可能是因为您的磁盘空间已经用满了。这将会将文件下载到您指定的临时目录中。下载完成后,将文件移动到想用的目录中,然后清理临时目录。然后,使用 “wget” 或“ curl” 命令来下载文件,并指定临时目录。2.将一些大文件或不常用的文件转移到外部存储设备中,例如移动硬盘或云存储。原创 2023-03-14 21:44:59 · 368 阅读 · 0 评论 -
【在Ubuntu中安装Pycharm(Ubuntu22.04,Pycharm2022.3.3)】详细如何解压文件
3.下载PyCharm社区版或专业版的tar.gz压缩文件,您可以在PyCharm官网上下载。解压缩文件操作:新版本可以直接"Extract here" 是一个常见的文件操作选项,它通常出现在文件管理器中,用于解压缩压缩文件。这将会将解压缩后的文件存储到 “/path/to/target/directory/ “目录中。如果ubuntu系统比较老,可能不能直接通过现在版本的直接解压文件,可以参考以下的方法解压。我在这里选择的是2022.3.3的社区版,选择下载Linux版本的pycharm。原创 2023-03-14 21:37:57 · 5695 阅读 · 0 评论 -
Ubuntu系统进去之后黑屏是什么问题,及解决办法【最全】
6.最后一种,如果是无线连接的系统,极大可能就是网络问题,比如智能小车搭载Ubuntu系统,但是是通过局域网和自己电脑nomachine连接的,进去黑屏的可能是网络问题,连接不稳定。5.如果你使用的是Ubuntu的桌面环境,可能会有一些桌面环境特定的问题。最后,如果以上方法都无效,你可以尝试重新安装Ubuntu系统。在重新安装前,你可以将你的个人数据备份到外部存储设备中,以免数据丢失。4.如果你在登录之后遇到了黑屏,可能是因为系统登录管理器出现了问题。你可以尝试切换到tty模式并重新安装登录管理器。原创 2023-03-11 13:48:24 · 27548 阅读 · 2 评论 -
Ubuntu系统中运行python代码出现Illegal instruction (core dumped)
当你在运行Python代码时遇到"Illegal instruction (core dumped)"错误时,这通常意味着你的代码尝试在当前CPU架构不支持的指令上运行。如果以上步骤都没有解决问题,你可以尝试在其他系统上运行代码,或者尝试使用其他版本的Python解释器来运行代码。你的代码尝试在旧的或不支持的CPU架构上运行,例如尝试在32位系统上运行64位Python解释器。确认你正在运行正确的Python解释器版本,例如确认你在64位系统上运行64位Python解释器。原创 2023-03-09 20:30:41 · 9614 阅读 · 0 评论 -
如何在Ubuntu系统里面运行python的代码
在Ubuntu系统中,你可以使用快捷键“Ctrl + Alt + T”来打开终端。这将运行你的Python代码。如果你的代码有任何输出,它们将会显示在终端中。按下"Ctrl + X"键,然后会出现一个提示,询问你是否要保存改动。确认文件名后,按下"Enter"键,即可保存并退出nano编辑器。如果你已经安装了Python,则会显示出Python的版本号。这会打开一个新文件,你可以在其中编写你的Python代码。如果你已经完成了代码编写,按下"Y"键来确认保存。然后,会出现另一个提示,询问你要保存的文件名。原创 2023-03-09 20:23:40 · 18444 阅读 · 2 评论 -
简单系统gui登录界面现学现用
全称为Graphical User Interface,图形化界面或图形用户接口,是指采用图形方式显示的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。原创 2023-03-07 21:06:01 · 488 阅读 · 0 评论