cv2.circle()函数报错(tensor 转 array 感觉是bug)

news2024/11/29 22:30:21

前言

我不理解为啥opencv-python可视化一堆报错,同一个三通道图像,cv2.imshow()没有问题,cv2.circle()就一直有问题,搞了一晚,心态炸了!!!

cv2需要的图片矩阵(H, W, C)有两种

  1. 像素值范围为 [0,1] ------ 数据类型: float32
  2. 像素值范围为 [0,255] ------ 数据类型: uint8

源代码

        for k, xys1 in enumerate(output_reproj['keyp_2d']):
            new_image1 = target_dict['target_img'][k].numpy()
            new_image1 = new_image1*255 / new_image1.max()
            new_image1 = np.uint8(new_image1)
            new_image1 = new_image1.transpose(1, 2, 0)
            # cv2.imshow('222', new_image1)
            # cv2.waitKey(5000)
            # cv2.destroyAllWindows()
            for i, x_y in enumerate(xys1):
                print(111)
                cv2.circle(new_image1, (int(x_y[0]), int(x_y[1])), 2, (0, 0, 255), -1)

说明:
target_dict[‘target_img’][k] 是(CHW)的 tensor,其数值范围是【0,1】类型是【torch.float32】
转换后的 new_image1 是 (HWC)的array,其数值范围是【0,255】类型是【np.uint8】

这里的new_image1直接 cv2.imshow 没有问题,但是 cv2.circle 就一直报下方的错误,排查不出原因

在这里插入图片描述
在这里插入图片描述

报错

    cv2.circle(new_image1, (int(x_y[0]), int(x_y[1])), 2, (0, 0, 255), -1)
cv2.error: OpenCV(4.6.0) :-1: error: (-5:Bad argument) in function 'circle'
> Overload resolution failed:
>  - Layout of the output array img is incompatible with cv::Mat
>  - Expected Ptr<cv::UMat> for argument 'img'
>  

解决方法

加入两行代码即可,原因不知道,但可以跑通了

关键!!!!!

            b, g, r = cv2.split(new_image1)
            new_image1 = cv2.merge([r, g, b])
        for k, xys1 in enumerate(output_reproj['keyp_2d']):
            new_image1 = target_dict['target_img'][k].numpy()
            new_image1 = new_image1*255 / new_image1.max()
            new_image1 = np.uint8(new_image1)
            new_image1 = new_image1.transpose(1, 2, 0)
            '''修改后的'''
            b, g, r = cv2.split(new_image1)
            new_image1 = cv2.merge([r, g, b])
            # cv2.imshow('222', new_image1)
            # cv2.waitKey(5000)
            # cv2.destroyAllWindows()
            for i, x_y in enumerate(xys1):
                print(111)
                cv2.circle(new_image1, (int(x_y[0]), int(x_y[1])), 2, (0, 0, 255), -1)

更简单的方法,数值范围不用转到【0,255】,保留原本的【0,1】也可以

        for k, xys1 in enumerate(output_reproj['keyp_2d']):
            new_image1 = target_dict['target_img'][k].numpy()
            new_image1 = new_image1.transpose(1, 2, 0)
            b, g, r = cv2.split(new_image1)
            new_image1 = cv2.merge([r, g, b])
            # cv2.imshow('222', new_image1)
            # cv2.waitKey(5000)
            # cv2.destroyAllWindows()
            for i, x_y in enumerate(xys1):
                print(111)
                cv2.circle(new_image1, (int(x_y[0]), int(x_y[1])), 2, (0, 0, 255), -1)

参考链接:CV2,Image,PIL图片读取,并且与Tensor相互转化并展示

吐槽一下

图像可视化还是 import matplotlib.pyplot as plt 用着舒服,tensor 和 array 都兼容,单通道和3通道也都可以,但是在图上画关键点还是用 import cv2,plt 都没这些功能吗,很烦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FKM规范 针对非焊接构件疲劳强度评估的实例介绍(下篇)

本文主要结合FKM规范及FKM inside ANSYS软件针对非焊接构件的手动计算实例及软件计算实例进行介绍&#xff0c;希望大家对FKM规范在非焊接构件疲劳强度评估中的手动及软件计算过程有基本的了解。 一、写在前面 FKM Inside ANSYS软件&#xff0c;该软件是在FKM 规范的基础上&a…

不想写日报、周报,这个报表自动化软件太牛了,仅需三分钟

昨天看到一个哥们发帖说IT部门负责做报表的同事阳了&#xff0c;再加上年底各个业务部门报表需求旺盛&#xff0c;现在他们是忙的饭都吃不上&#xff0c;天天凌晨才能回家。京东的人倒是被解放了&#xff0c;毕竟强东说汇报只能1页ppt。但对于万千其他公司的朋友们来说&#xf…

【POJ No. 2114】 游船之旅 Boatherds

【POJ No. 2114】 游船之旅 Boatherds 北大OJ 题目地址 【题意】 河流总是形成一棵树&#xff08;以村庄为节点&#xff09;&#xff0c;超过两条河流时可以在交叉路口汇入。游船的定价政策非常简单&#xff1a;两个村庄之间的每条河流都有一个价格&#xff08;两个方向的价格…

向现实「低头」,大众「调战略」

越来越多的汽车制造商&#xff0c;在修正自己的战略。 作为全球智能电动汽车领头羊&#xff0c;特斯拉针对欺诈指控为自己辩护&#xff0c;解释称其自动驾驶技术只是未能实现自己设定的目标&#xff0c;而不是误导消费者。2019年4月&#xff0c;其首席执行官埃隆马斯克声称&…

电脑技巧:推荐几款装机必备的软件

目录 1、火绒安全 2、Geek Uninstaller 卸载神器 3、Potplayer 4、Edge微软官方浏览器 5、Snipaste 截图神器 6、Everything 本地搜索神器 7、Honeyview 超好用的图片查看工具 8、Bandizip 解压缩工具 9、傲梅分区助手 分区必备神器 10、ToDesk 远程协助工具 11、剪…

数字化采购浪潮下,MRO工业品采购商城系统如何助力企业深化智能升级

工业品作为工程建设、机械制造等行业发展过程中不可缺少的一部分&#xff0c;市场前景十分广阔。根据艾瑞咨询数据显示&#xff0c;2020年我国工业品市场规模为10.6万亿元&#xff0c;其中MRO市场占比为20%。而在万亿规模下&#xff0c;我国工业品市场上下游存在诸多行业痛点&a…

(八)并发集合——阻塞队列

阻塞队列---BlockQueue BlockingQueue是带阻塞功能的队列&#xff0c;继承了Queue接口&#xff0c;当执行入队操作时&#xff0c;如果队列满了&#xff0c;则阻塞调用者&#xff1b;当执行出队操作时&#xff0c;如果队列是空的&#xff0c;也阻塞调用者。 public interface Bl…

RK3568平台开发系列讲解(Linux系统篇)内存映射与虚拟内存

🚀返回专栏总目录 文章目录 一、内存映射二、内存保护三、内存锁定3.1、锁定指定的内存段3.2、锁定进程的所有内存页沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章讲介绍几个对虚拟内存进行系统级控制的系统调用,合理使用它们,能极大地提高应用的执行效率,…

C++ Reference: Standard C++ Library reference: Containers: map: map: at

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/at/ 公有成员函数 <map> std::map::at mapped_type& at (const key_type& k); const mapped_type& at (const key_type& k) const;访问元素 返回对键k标识的元素的映射值的引用。 如…

1、CSS基础之初识

文章目录一、简介二、基础语法语法格式注释举个例子三、CSS的数值与单位颜色值长度值四、CSS样式类型内联式&#xff08;行内嵌&#xff09;内嵌式&#xff08;内部样式表&#xff09;外链式&#xff08;外部样式表&#xff09;五、文字排版六、格式化列表七、格式化链接八、We…

网络实验之RIPV2协议(一)

一、RIPV2协议简介 RIP (Routing Information Protocol) 路由协议是一种相对古老&#xff0c;在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP 采用距离向量算法&#xff0c;是一种距离向量协议。RIP-1是有类别路由协议&#xff08;Classful Routing Protocol&#x…

[R语言]RMarkdown: 入门与操作

Rmarkdown入门汇总 R Markdown介绍 RMarkdown为我们的数据分析创建一个清晰美观的报告&#xff0c;它能够包含代码&#xff0c;图&#xff0c;表&#xff0c;说明&#xff0c;查看的人能够很清楚地理解。 RMarkdown利用Markdown的语法&#xff0c;能够被方便的转成其他类型(…

超店有数推出TikTok达人批量触达工具,让海量达人同时带货不再是梦

近年来&#xff0c;TikTok的全球化步伐越来越快。作为全球知名的短视频应用&#xff0c;TikTok目前日活跃用户超过8亿。电子商务业务规模保持快速增长。今年TikTok Shop黑五大促已于11月28日正式收官&#xff0c;TikTok Shop在黑五大促期间GMV增长126%&#xff0c;订单量增长13…

汇编前四章学习笔记

汇编学习笔记&#xff08;by 小白奋斗ing&#xff09; 参考《汇编语言&#xff08;第三版&#xff09;》王爽著 1.基础知识 1.1 机器语言 二进制编码 1.2 汇编语言 1.3 汇编语言的组成 1.4进制表示符 二进制&#xff08;B&#xff09;&#xff0c;十六进制&#xff08;H&a…

2022计算机毕业设计选题推荐 - 计算机毕业设计题目大全

文章目录0 前言1 java web 管理系统 毕设选题2 java web 平台/业务系统 毕设选题3 游戏设计、动画设计类 毕设选题 (适合数媒的同学)4 算法开发5 数据挖掘 毕设选题6 大数据处理、云计算、区块链 毕设选题7 网络安全 毕设选题8 通信类/网络工程 毕设选题9 嵌入式 毕设选题10 开…

电脑怎么恢复数据?恢复数据的3个技巧分享

在日常工作或生活中&#xff0c;电脑都是不可或缺的工具和设备。电脑里面保存着很多文件数据&#xff0c;如果重要的数据文件丢失&#xff0c;那就很麻烦。如果电脑数据丢失&#xff0c;怎么恢复数据&#xff1f;让我们一起来看看下面的3个恢复电脑数据的技巧吧&#xff01; 数…

阿里最新分享 SpringCloudAlibaba 实战小抄(第五版),一代更比一代强

为什么要学习 SpringCloud Alibaba&#xff1f; Spring Cloud Alibaba 为分布式应用开发提供了一站式解决方案。它包含开发分布式应用程序所需的所有组件&#xff0c;可以轻松地使用 Spring Cloud 开发应用程序。 使用 Spring Cloud Alibaba&#xff0c;只需添加一些注解和少…

web前端期末大作业——用HTML+CSS做一个漂亮简单的电影主题网站

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

【Python百日进阶-数据分析】Day127 - plotly折线图:px.line()/go.Scatter()实例

文章目录四、实例4.1 px的折线图4.1.1 加拿大的预期寿命4.1.2 带有列编码颜色的折线图4.1.3 Dash中的折线图4.1.4 折线图中的数据顺序4.1.5 连通散点图4.1.6 带标记的折线图4.1.7 symbol参数可用于将数据字段映射到标记符号4.1.8 日期轴上的折线图4.1.9 Sparklines with Plotly…

HUAWEI内网最新发布了一份452页网络协议手册,GitHb百万收藏

网络协议 网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 网络协议作为当下久经不衰的话题&#xff0c;如果你经常看一些CSDN&#xff0c;GitHub&#xff0c;开源中国等较大的程序员网站就可以发现 相关于网络协议的博文非常之多&#xff01; 想要学习…