上位机图像处理和嵌入式模块部署(h750 mcu和图像处理)

2024-06-12 08:20

本文主要是介绍上位机图像处理和嵌入式模块部署(h750 mcu和图像处理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们说过,h750和之前的103、407相比较,本身cpu频率比较高,flash大小一般,但是ram比较大,特别适合用来进行算法处理。其中,又以图像算法的处理更有实际意义。因为,如果mcu的频率不需要那么高的话,那么其实用407也完全可以实现我们的需求。那如何用市面上的h750开发板,进行图像处理开发板呢?

1、首先打通两个串口

        这里需要两个串口,一个串口进行debug信息的打印,另外一个串口进行数据的交互。两个串口最好相互区分开来。通常串口的波特率一般设置成115200,但是实际使用的时候,设置成460800进行数据传输,一般问题也是不大的。

        大家也可以通过usb、或者是以太网进行数据的传递,只不过这两部分都比较浪费空间,移植上面有一定的难度,对图像来说也不是必选项。还有同学说认为可以利用tf卡,技术难度是不大,但是插拔起来比较不方便。

2、需要上位机交互使用

        既然准备好了数据通信串口,下面就是需要编写一个上位机进行数据的发送和接收。编程的方法可以是c++和qt,也可以是c#和wpf,大家可以根据自己的情况灵活进行选择。这样有了图像的上传和下载,整个图像的导入、导出就比较方便了。

3、缩小图像

        我们知道h750vbt6的ram是比较大的,大约1m,而flash比较小,只有128k。但是,我们也知道,处理的图片大小一般都不小,以512*512标准的lena图像来说,一张大小就有差不多256k。所以实际处理的时候,我们有必要缩小一下图像,比如变成256*256,这样图片的大小就只有64k,只有原来的1/4,节约了不少空间。

4、后期慢慢加上sdram

        缩小图像是我们研发时的权宜之计,也是为了适应大多数板子开发时的要求。真正后期部署的时候,还是需要搭载一块sdram的,因为我们自己并不知道实际拍摄的图片是多大。此外,实际生产当中,512*512很有可能已经是缩小之后的图像了。

5、接着用camera sensor代替上位机发送图像

        实时性是图像处理很大的一个特点,同样而言,前期开发的时候用图像代替实际camera是可取的,后期的话还是会用ov5640这样的实际camera,来代替之前的上位机图像传递了。

6、算法参数保存

        这部分的话,直接依靠spi norflash来实现。

7、中间图像结果的保存

        实际应用的时候,有的时候需要对大量的中间图像数据进行保存,全部放在ram或者flash都是不太现实的。这种情况下,最好能够把中间结果保存在tf卡上面。这样后期测试和验证的时候都很方便。

8、需不需要网络phy根据实际情况而定

        网络的好处是使用方便,对外数据收发比较简洁。但是缺点是占用ram和flash空间,很多时候,引入了lwip之后,还需要引入rtos,这种情况下原来的h750可能在flash大小上就不一定满足要求了。

9、实现路径和方法

        一开始的时候,大家没有必要追求大而全,做好前面的1-3,其实就相当于把h750用起来了。后期等到准备实际部署的时候,再重新换板子,把4-8补上,这都是可以的。我们自己的精力,大部分时间还是应该放在如何利用mcu现有的性能,更好地实现图像功能上面。

这篇关于上位机图像处理和嵌入式模块部署(h750 mcu和图像处理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053684

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx

python urllib模块使用操作方法

《pythonurllib模块使用操作方法》Python提供了多个库用于处理URL,常用的有urllib、requests和urlparse(Python3中为urllib.parse),下面是这些... 目录URL 处理库urllib 模块requests 库urlparse 和 urljoin编码和解码

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录