C#脚本拼接两张高度一致的图片
vm4.4C#脚本实现拼接两张高度一致的图片,且无第三方库依赖。

vm 自带的【图像拼接】算子不能满足需求,比如拼接的方向,或者一种全局变量的状态。所以只能在脚本模块里写 C# 去实现了,一开始想用 OpenCV 的 hconcat 函数,结果总在这个函数报错,我有点惧怕或者懒惰按照文档提醒的方式打断点找问题……

说到底,图片本质上就是一个字节矩阵或者数组嘛,琢磨了一下对应关系,这个函数手写没问题的。

carbon.svg

函数的输入输出都是 ImageData 类型。

public ImageData MergeImagesHorizontally(ImageData leftIm, ImageData rightIm) { // 默认两张照片高度一致 int bytesPerPixel = (leftIm.PixelFormat == ImagePixelFormate.MONO8) ? 1 : 3; byte[] buffer = new Byte[(leftIm.Width + rightIm.Width) * leftIm.Height * bytesPerPixel]; // 每次复制一行过去 for (int h = 0; h < leftIm.Height; h += 1){ Array.Copy(leftIm.Buffer, h * leftIm.Width * bytesPerPixel, buffer, h * (leftIm.Width + rightIm.Width) * bytesPerPixel, leftIm.Width * bytesPerPixel); Array.Copy(rightIm.Buffer, h * rightIm.Width * bytesPerPixel, buffer, ((leftIm.Width + rightIm.Width) * h + leftIm.Width) * bytesPerPixel, rightIm.Width * bytesPerPixel); } ImageData outIm = new ImageData(); outIm.Buffer = buffer; outIm.Width = leftIm.Width + rightIm.Width; outIm.Height = leftIm.Height; outIm.PixelFormat = leftIm.PixelFormat; return outIm; }

另,封面图片为动漫《物语》截图

版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

vm4.4脚本图像ImageData与OpenCVMat互转

下一篇

VM算法平台-齿轮测量方案(Group+脚本输出+TCP通讯+圆拟合)

评论请先登录 登录
全部评论 0
Lv.0
0
关注
0
粉丝
0
创作
0
获赞
相关阅读
  • 一文带你入门RCS4.X-(4.2.8单独档)【任务编排】(四)
    2025-06-23 浏览 0
  • 秒懂VisionMaster!「VM助手」上线,有问必答的AI导师来了!
    2025-06-26 浏览 0
  • 全国总决赛获奖名单公布!第三届“启智杯”机器智能大赛大奖花落谁家?
    2025-06-03 浏览 0
  • [第三届启智杯大赛决赛】-应用3D赛道-果宝特攻队-九通阀密封垫缺陷检测系统
    2025-06-09 浏览 0
  • 基于Opencv的交互式GrabCut分割
    2025-06-06 浏览 0

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器