图像简单拼接

近日在做一个圆形印章的识别 ,检测到印章如下:

 每个字单独旋转矫正后(每个字图像大小与原图一致):

 最后想简单的将这几个字的图像合并到一张图像,想到2种方案:

1.建一个新图,高与小图一致,宽为小图9倍,然后每个小图复制到对应区域

2.stitch来图像拼接,考虑到效率问题(特征点计算很费时,没必要计算特征),舍弃

第一种方案感觉还是有点复杂,还有没有简单的方式?

万能的百度找到方案:

 //@param1 多个小图的向量
// @param2 目标图
CV_EXPORTS_W void hconcat(InputArrayOfArrays src, OutputArray dst);

结果如下: 

 竖向拼接用vconcat()

### 蓝桥杯嵌入式比赛串口通过DMA发送数据的实现 在蓝桥杯嵌入式比赛中,利用串口和DMA技术进行高效的数据传输是一种常见的需求。以下是关于如何实现串口通过DMA发送数据的具体方法以及示例代码。 #### 1. 配置UART与DMA 为了使能DMA模式下的串口通信,在CubeMX工具中需完成以下设置: - **启用UART外设**:选择相应的UART通道(如USART1),并将其工作模式设定为异步模式。 - **配置波特率和其他参数**:根据实际应用调整波特率、停止位、校验位等基本属性[^3]。 - **激活DMA支持**:勾选TX方向上的DMA选项,并分配合适的DMA流/通道资源用于管理数据缓冲区的操作过程。 #### 2. 初始化结构体定义 在程序初始化阶段,需要创建`UART_HandleTypeDef`类型的句柄变量来保存有关硬件状态的信息;同时也要声明一个全局数组作为DMA传输期间使用的发送缓存区域: ```c UART_HandleTypeDef huart1; uint8_t tx_data[] = "This is a test message via UART with DMA.\n"; ``` #### 3. 编写发送函数 下面展示了一个基于HAL库调用API接口实现的简单例子,它展示了怎样启动一次带有指定长度消息内容的DMA传送动作: ```c void SendDataUsingDMA(void){ if(HAL_UART_Transmit_DMA(&huart1, (uint8_t*)tx_data, sizeof(tx_data)-1)!= HAL_OK){ Error_Handler(); // 如果发生错误,则进入错误处理流程 } } ``` 此段代码片段的作用在于当被调用时会触发DMA控制器自动从内存地址指向的位置取出相应字节数量的数据并通过选定好的UART端口向外发出直到全部完成为止[^4]。 #### 4. 中断服务例程(ISR) 虽然上述部分已经涵盖了主要逻辑但是还需要注意一点就是每当有一个完整的块已经被成功转移到目标设备之后会产生一个事件通知主机从而允许进一步采取行动比如重新装载新的资料或者关闭整个事务等等这些都可以放在特定ISR内部去执行: ```c void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart){ if(huart == &huart1){ // 此处可加入额外的任务控制语句例如点亮LED指示灯表明已完成一项作业之类的操作 } } ``` 以上即构成了一个较为完善的方案框架用来解决题目所提到的要求——借助于直接存储器访问机制提高效率的同时简化了传统轮询等待所带来的复杂度问题[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值