opencv 的 cv2.add() 函数在输入为一维 numpy 数组时可能误判为标量(scalar),导致返回 float64 类型、四维结构的异常结果;正确做法是确保输入为二维(如 `(1, 1)`)或更高维的规则数组,以触发预期的饱和加法(uint8 溢出截断至 255)。
OpenCV 的 cv2.add() 是一个饱和加法(saturated addition)操作:对 uint8 类型图像/数组,它会将超过 255 的值自动截断为 255(而非回绕或报错),这是其区别于 NumPy 原生 + 运算符的核心特性。但该行为严格依赖输入数组的形状与维度解析逻辑。
你遇到的问题根源在于:
x = np.array([250], np.uint8) # shape = (1,) y = np.array([10], np.uint8) # shape = (1,)
这两个一维数组(shape=(1,))在 OpenCV 内部被隐式解释为 cv::Scalar 类型(常用于表示 BGR/RGBA 颜色值),而 cv::Scalar 默认以 double 精度存储。因此 cv2.add(x, y) 实际执行的是标量广播加法,并返回一个 float64 类型、形状为 (4, 1) 的数组——其中 [260., 0., 0., 0.] 正是 OpenCV 将标量 (260.0) 扩展为四通道(RGBA)默认填充的结果。
✅ 正确写法:显式构造二维数组(推荐)
import numpy as np import cv2 x = np.array([[250]], dtype=np.uint8) # shape = (1, 1) y = np.array([[10]], dtype=np.uint8) # shape = (1, 1) result = cv2.add(x, y) print(result.dtype) # uint8 print(result) # [[255]]
⚠️ 其他等效方式(均需保证至少二维):
# 方式 2:reshape 显式调整 x = np.array([250], np.uint8).reshape(1, 1) y = np.array([10], np.uint8).reshape(1, 1) # 方式 3:使用 np.expand_dims x = np.expand_dims(np.array([250], np.uint8), axis=0) # (1, 1) y = np.expand_dims(np.array([10], np.uint8), axis=0) # 方式 4:多像素示例(更贴近实际图像场景) img1 = np.array([[250, 100], [50, 200]], dtype=np.uint8) # (2, 2) img2 = np.array([[10, 150], [200, 100]], dtype=np.uint8) result = cv2.add(img1, img2) # 自动逐元素饱和加:[[255, 250], [250, 255]]
? 补充说明:
? 总结:始终确保 cv2.add() 的输入为二维或三维 NumPy 数组(如 (H, W) 或 (H, W, C)),避免一维输入引发标量歧义——这是写出可移植、可预测 OpenCV 图像算术代
码的关键实践。
相关文章:
如何在IIS中新建站点并配置端口与物理路径?
,交易猫的商品怎么发布到网站上去?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
如何通过远程VPS快速搭建个人网站?
浅谈Javascript中的Label语句
网站制作难吗安全吗,做一个网站需要多久时间?
如何快速搭建高效服务器建站系统?
广州建站公司哪家好?十大优质服务商推荐
制作表格网站有哪些,线上表格怎么弄?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
如何高效完成自助建站业务培训?
如何撰写建站申请书?关键要点有哪些?
如何选择域名并搭建高效网站?
红河网站制作公司,红河事业单位身份证如何上传?
详解jQuery停止动画——stop()方法的使用
建站主机服务器选购指南:轻量应用与VPS配置解析
建站168自助建站系统:快速模板定制与SEO优化指南
建设网站制作价格,怎样建立自己的公司网站?
建站之星后台密码遗忘如何找回?
建站主机SSH密钥生成步骤及常见问题解答?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
SQL查询语句优化的实用方法总结
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
活动邀请函制作网站有哪些,活动邀请函文案?
建站之星北京办公室:智能建站系统与小程序生成方案解析
如何使用Golang安装API文档生成工具_快速生成接口文档
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
微信h5制作网站有哪些,免费微信H5页面制作工具?
孙琪峥织梦建站教程如何优化数据库安全?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
代购小票制作网站有哪些,购物小票的简要说明?
,制作一个手机app网站要多少钱?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
jQuery 常见小例汇总
,怎么在广州志愿者网站注册?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
Android自定义控件实现温度旋转按钮效果
怀化网站制作公司,怀化新生儿上户网上办理流程?
如何在橙子建站上传落地页?操作指南详解
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
建站之星展会模版如何一键下载生成?
韩国服务器如何优化跨境访问实现高效连接?
湖北网站制作公司有哪些,湖北清能集团官网?
建站DNS解析失败?如何正确配置域名服务器?
已有域名和空间如何快速搭建网站?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
建站之星安装后如何自定义网站颜色与字体?
如何快速搭建FTP站点实现文件共享?
专业网站建设制作报价,网页设计制作要考什么证?
*请认真填写需求信息,我们会在24小时内与您取得联系。