【求教】Arduino 可以实现图像处理吗(类似Matlab)
arduino吧
全部回复
仅看楼主
level 4
有个项目是 Arduino 与热感应器相连,启动后,由串行端口把热源数据发送给计算机,然后产生一个.txt文件,接着由matlab处理.txt文件,然后生成热感应图像。
我的问题是:
1. 如何将 Serial monitor 中的数据转成.txt文件
2. Arduino 能不能自己处理图像,与计算机相连后直接将图像输出,不用Matlab。
接触Arduino 刚一个月,谢谢大家了
2013年06月25日 19点06分 1
level 11
我用matlab读取的数据处理大都是从其他软件引过来的 图形交互的话 我给你推荐两个软件吧一个是比较基础的processing 虽然说基础 但是功能强大 交互性强 还有就是比较专业的labvIEW软件 与matlab交互十分方便 希望能帮到你
2013年06月26日 01点06分 2
谢谢,查了一下processing的用法,但是我不需要用它画图。需要的是: 如果把每个像素点的温度传给processing,它能够生成对应的thermal image吗?
2013年06月26日 13点06分
回复 晒太阳1987 :我感觉processing 可以实现 不过你要确保你扫描的速度够快 还有处理速度能跟上图像 如果实在太繁琐还是建议用labvIEW吧 比较正规
2013年06月26日 14点06分
回复 飘雪才子 :好的,我去看看,谢谢:)
2013年06月26日 18点06分
回复 晒太阳1987 :不谢 共同进步
2013年06月26日 23点06分
level 7
1.任何能够实现串口通信,文件读写的语言都可以
2.图像处理不一定得用Matlab
用Python应该就能实现
需要安装两个扩展库:
PySerial 串口通讯模块
OpenCV 基于C/C++语言的开源图像处理函数库
2013年06月26日 07点06分 4
谢谢,已经实现了从计算机的串口通信。可能没有说清楚,原来的project是用java从串口接收数据,再传给matlab进行处理生成图像。 我再想,能不能不把数据传到计算机内,直接由Arduino处理生成图像。当Arduino与计算机相连时,直接把图像传给计算机。
2013年06月26日 13点06分
回复 晒太阳1987 :理论上是可以
2013年06月26日 14点06分
回复 jh7086 :理论上怎么实现,能提供一些思路吗?
2013年06月26日 18点06分
回复 晒太阳1987 :就是自己写图像处理程序了,我不懂.
2013年06月27日 02点06分
level 6
[呵呵]略不懂
2013年06月26日 07点06分 5
Thanks all the same[呵呵]
2013年06月26日 13点06分
level 13
arduino当然也可以执行任何图像处理算法,但由于它的主频处,理位数和内存的限制,处理速度比电脑要慢很多,图像数据太多时,会慢得没有使用价值,所以如果涉及与计算机交换数据,最好把运算量大的工作交给计算机去做。
2013年06月27日 04点06分 6
Thanks,我们改变了原计划,打算外接一个memory,储存测量数据,然后将数据传给计算机处理,你说的这些正好可以用在实验报告上^-^
2013年06月27日 11点06分
Lattepanda也许可以帮助[笑眼]
2019年03月22日 17点03分
level 13
[钱]
2013年06月27日 04点06分 7
[呵呵]
2013年06月27日 11点06分
level 9
楼主弱弱的问一句arduino可以和matlab实行交互吗??我们还学了matlab呢。。
2013年07月01日 15点07分 8
可以,我是通过java来连接arduino和matlab的,也有其他的方法.http://playground.arduino.cc/Interfacing/Matlab 这是arduino的官网,可以看看。
2013年07月01日 15点07分
可以,我用的java连接的Arduino和matlab,还有其他方法,可以去Arduino官网上看看,google 搜索“arduino and matlab” 第三个就是。
2013年07月02日 00点07分
回复 晒太阳1987 :额。。谢啦。。我给研究研究╭(╯ε╰)╮
2013年07月02日 00点07分
level 7
如果主要目的是图像处理,推荐你用opencv做交互,速度快很多。
matlab功能很强大,但不是做专门的图像处理的
2013年07月01日 21点07分 9
谢谢,我们主要是生成对应的thermal image,想不连接电脑,直接再arduino上生成。百科了opencv,挺好的,下次做图像处理可以用^^
2013年07月02日 00点07分
level 7
回复@晒太阳1987 :我又看了你的问题。第一个问题的解决办法 串口发送的数据是一段一段的ascii码 matlab有现成的语句可以读 并直接转成十进制数 但获得的只是对应代码 成比例 但不是实际数值 需要自己手动转换;基本流程有两种 第一申请虚拟内存 板子不停发送 matlab逐行扫描 可以存在一个矩阵或向量中,另外一种每次板子发送数据都要等收到电脑命令 也就是收到一个才发另一个。实时性都很差。 关于第二个问题 这要取决于你用的是什么传感器了,可以通过存在矩阵中来表达图像,一个元素代表一个元素,最后发送都要转码的,不介意的话,把你的传感器方案说详细一点。楼主的问题是生成图像不是处理吧
2013年07月02日 10点07分 10
是的,是生成图像,请看12楼
2013年07月02日 19点07分
回复 晒太阳1987 :那简单了 如果热图像的每个像素对应的只是热值 只要把所有热值存到一维矩阵中对应的元素中就可以了。如果热图像是彩色的 自己编个算法存成三维的矩阵就可以了。大部分图像处理软件是可以把矩阵直接转换为图像显示的
2013年07月02日 22点07分
回复 Fantc_Lei :十分感谢~
2013年07月03日 19点07分
level 8
这个要看你的读取速度预想多少了,如果放弃高采样率是肯定可以做到的。我不太清楚你热源数据和要绘制的图像是什么样子的,就给你说个思路吧。大概就是把测到的数据按照你想绘制的图像以坐标和数值共同编码的形式记录在txt中。如果要用arduino不通过电脑显示出来就是直接接个LCD,然后一行行刷新。
你如果是记录热源当时的温度(只是一个温度传感器),然后绘制温度变化图那就非常简单了。
2013年07月02日 12点07分 11
不需要显示处理,只要存在Arduino中就行了,请看12楼,方法能在具体一些吗?谢谢~
2013年07月02日 19点07分
回复 晒太阳1987 : 这个我就还真不太清楚了。第二个问题我一般都是直接做显示了,因为有坐标所以比较好做。如果输入电脑用LabVIEW,Java等软件接受后处理也很好弄,不过要直接存在Arduino里就有点困难了。不过c有画图之类的库,我觉得arduino可能会有兼容,给你提供
2013年07月10日 06点07分
回复 晒太阳1987 : 给你提供个想法吧,可以去这个方向看看。如果要内部图像分析的话就是算法问题了
2013年07月10日 07点07分
level 4
问题1已经解决, 生成的txt文件(x位置,y位置, 对应的温度):
这个文件是在计算机上生成的,然后用matlab处理这个txt文件,生成图像。
想问能不能在Arduino中处理这些数据然后生成对应的thermal image.(这些数据存在arduino外接的EEPROM中)
2013年07月02日 19点07分 12
对应的坐标和温度已经存在arduino的外接EEPROM中,只需要Arduino处理这些数据,然后生成对应的热图保存在EEPROM中,不用显示。
2013年07月02日 19点07分
回复 晒太阳1987 :求问楼主是怎么解决第一个问题的?
2013年07月03日 09点07分
回复 paul920531 :由java程序接收端口传来的数据,再生成对应的txt文件。java有专门生成文件的函数,调用就可以了。 接受端口数据的代码在Arduino的官网上有,可以下载。
2013年07月03日 19点07分
level 1
楼主有个问题想问你
2016年03月18日 18点03分 13
...你的问题呢
2016年03月19日 04点03分
level 1
啊!楼主求教!这个可以实时生成图像嘛!我毕设打算做一个arduino控制切割的东西,然后把力和位移的关系用matlab显示出来
2017年04月11日 00点04分 14
我当时是把数据保存到内存条,再传到电脑上处理,如果时刻保持Arduino和电脑连接的话,理论上是可以的,比如在电脑端写个程序监控Arduino,一旦有新数据就主动获取,并传送给Matlab。这个project太久以前做的了,现在也许有更好的方法,但楼主就不清楚啦 :)
2017年04月11日 05点04分
@悠悠子衿🌸 啊,楼主是触触嘛,学啥专业的啊,心累,我一个机械的毕业要做控制😭
2017年04月12日 00点04分
level 1
姐姐你好 我的课题和你好像的 想问下姐姐你 能不能分享一下到底怎么生成txt文件,然后怎么用matlab处理呢
上面那层不知道怎么被折叠了
2019年03月23日 06点03分 16
level 3
路过
2022年07月28日 21点07分 17
level 11
可以的
2022年07月28日 23点07分 18
1