图像自定义画框box标注,坐标像素点获取;通过坐标点画框

news2024/9/23 15:25:49

1、jupyter-bbox-widget画框,这只能jupyter环境插件使用

pip install jupyter_bbox_widget ##安装
##注册
jupyter nbextension enable --py --sys-prefix jupyter_bbox_widget

使用

from jupyter_bbox_widget import BBoxWidget
widget = BBoxWidget(
    image='fruit.jpg',
    classes=['apple', 'orange', 'pear'],
)
widget

在这里插入图片描述
注意上面如果图像显示问题,用base64方式

from jupyter_bbox_widget import BBoxWidget
import base64

def encode_image(filepath):
    with open(filepath, 'rb') as f:
        image_bytes = f.read()
    encoded = str(base64.b64encode(image_bytes), 'utf-8')
    return "data:image/jpg;base64,"+encoded
    
widget = BBoxWidget(
    image = encode_image(r"C:\Use***6722996428308480-0 (2).jpg",),
    classes = ['apple', 'orange', 'pear'],
)

在这里插入图片描述
vscode的jupyter环境也可以
在这里插入图片描述

反向通过坐标指定显示出来
在这里插入图片描述

2、cv2自定义画框,比如矩形框四个点的坐标获取

通过cv2点击图片获取像素点坐标

import cv2

def mouse_click_event(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        # 获取鼠标点击位置的像素值
        pixel_value = image[y, x]
        print(f"The pixel value at the clicked coordinates ({x}, {y}) is {pixel_value}.")

# 加载图片
image_path = r"C:\Users\loong\Downloads\62a97af73f28dab32dcf672d5bed7cf6996571b26e5e1fc054aeb36c.jpg"
image = cv2.imread(image_path)

# 显示图片并注册鼠标事件处理函数
cv2.imshow('Image', image)
cv2.setMouseCallback('Image', mouse_click_event)

print("Click on the image where you want to get the pixel coordinates.")
cv2.waitKey(0)

# 释放窗口
cv2.destroyAllWindows()

在这里插入图片描述

3、shapely 指定画框,根据上面坐标,下面例子是画两个框,多边形和矩形

Polygon画框看着坐标是逆时针可以串起来坐标
(200, 250), (440, 250), (440, 550), (200, 550)

from shapely.geometry import Polygon

counting_regions = [
    {
        "name": "YOLOv8 Polygon Region",
        "polygon": Polygon(
            [(50, 80), (250, 20), (450, 80), (400, 350), (100, 350)]
        ),  # Polygon with five points (Pentagon)
        "counts": 0,
        "dragging": False,
        "region_color": (255, 42, 4),  # BGR Value
        "text_color": (255, 255, 255),  # Region Text Color
    },
    {
        "name": "YOLOv8 Rectangle Region",
        "polygon": Polygon([(200, 250), (440, 250), (440, 550), (200, 550)]),  # Rectangle with four points
        "counts": 0,
        "dragging": False,
        "region_color": (37, 255, 225),  # BGR Value
        "text_color": (0, 0, 0),  # Region Text Color
    },
]

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

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

相关文章

【深度学习】kaggle使用

https://blog.csdn.net/2301_78630677/article/details/133834096 https://blog.csdn.net/xiaojia1001/article/details/139467176 https://www.kaggle.com/ 使用要挂代理,要不然可能无法注册 绑定手机号之后才能使用GPU 每周30h免费GPU使用时长 上传数据集 Ad…

【文件解析漏洞】

使用windows2003sever服务器 第一个:目录解析 1、打开网站目录,右键打开资源管理器 新建一个1.asp文件 在1.asp目录下新建一个2.txt,输入asp的语句 2、使用本机访问windows2003的IP地址 访问http://192.168.189.155/1.asp/2.txt即可 第…

Minio多主机分布式 docker-compose 集群部署

参考 docker-compose搭建多主机分布式minio - 会bk的鱼 - 博客园 (cnblogs.com) 【运维】docker-compose安装minio集群-CSDN博客 Minio 是个基于 Golang 编写的开源对象存储套件,虽然轻量,却拥有着不错的性能 中文地址:MinIO | 用于AI的S3 …

CDP问卷调查

在数字化时代,CDP(Customer Data Platform,客户数据平台)作为连接企业与客户数据的关键桥梁,正逐渐成为企业营销策略中不可或缺的一环。为了更深入地理解CDP在企业中的应用现状、挑战与未来趋势,我们精心设…

A股探底强势反攻,量价齐声太漂亮

今天的A股探底回升,太阳线反攻,太漂亮了!具体原因是这样的,盘面上出现2个重要变化,一起来看看: 1、今天两市低开高走,证券、人形机器人等板块掀起涨停潮,究竟是昙花一现还是有望迎来…

VMware虚拟机安装及虚拟机下安装ubuntu(附安装包)

VMware虚拟机安装及虚拟机下安装ubuntu 0 前期准备1 VMware安装2 VMware虚拟机下安装ubuntu2.1 配置虚拟机2.2 安装虚拟机ubuntu 3 在虚拟机中卸载Ubuntu参考 0 前期准备 1、VMware Wworkstation Pro安装包下载 官网-添加链接描述 百度网盘分享: 链接: VMware 提取…

【ThingsBoard初体验】本地编译踩坑记录

前言 这只是我自己的踩坑记录,以尽快启动项目为主,暂时不对编译出现的问题做深入分析。 第一次接触物联网项目,对于文章出现的问题,如果能帮到其他小伙伴,那是我的荣幸。 大佬们有更好的解决办法,也希望能够…

TypeError: Components is not a function

Vue中按需引入Element-plus时,报错TypeError: Components is not a function。 1、参考Element-plus官方文档 安装unplugin-vue-components 和 unplugin-auto-import这两款插件 2、然后需要在vue.config.js中配置webPack打包plugin配置 3、重新启动项目会报错 T…

消息中间件分享

消息中间件分享 1 为什么使用消息队列2 消息队列有什么缺点3 如何保证消息队列的高可用4 如何处理消息丢失的问题?5 如何保证消息的顺序性1 为什么使用消息队列 解耦、异步、削峰 解耦 不使用中间件的场景 使用中间件的场景 异步 不使用中间件 使用中间件 削峰 不使…

【redis】redis高可用 哨兵模式 一主二从三哨兵部署教程

哨兵模式:自动主从同步、自动选举主节点;基本可以满足大部分业务场景; 在针对大规模数据和高并发请求的场景、数据不能丢失,才需要用到集群模式。 本文教程基于redis3 , centos 8 stream操作系统,理论上来说 redis3也好…

利用 Python 制作图片轮播应用

在这篇博客中,我将向大家展示如何使用 xPython 创建一个图片轮播应用。这个应用能够从指定文件夹中加载图片,定时轮播,并提供按钮来保存当前图片到收藏夹或仅轮播收藏夹中的图片。我们还将实现退出按钮和全屏显示的功能。 C:\pythoncode\new\…

http协议深度解析——网络时代的安全与效率(1)

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 目录 写在前面: 本章目的: …

【Python学习手册(第四版)】学习笔记11.1-赋值语句(分解赋值、序列赋值、解包等)及变量命名规则详解

个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文主要对赋值语句的各种形式做详解,以非常通俗易懂的语言、循序渐进的方式,分别对单个、元组及列表分解、序列赋值、序列解包、多重目标…

LinuxCentos中ELK日志分析系统的部署(详细教程8K字)附图片

🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理防护和群集专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作…

Android发布Library至mavenCentral遇到 Received status code 401

一、由于我的AppUpdate 库最新的版本还是去年发布的,所以想着发布一个版本,可没想到什么都没有改动的情况下竟然返回401;检查了半天发现用户名和密码也没有错,百思不得解! 二、最后没想到竟然是sonatype那边改了&#…

常见的Markdown编辑器推荐!

工欲善其事,必先利其器。一款好用的 Markdown 编辑器能极大地提高我们的写作体验,本篇博客就来介绍一些好用的编辑器。 ‍ ‍ Markdown 编辑器的分类 根据 Markdown 编辑器的使用环境,可以简单分为四类: 在线编辑器&#xff…

类和对象(中 )C++

默认成员函数就是用户不显示实现,编译器会自动实现的成员函数叫做默认成员函数。一个类,我们在不写的情况下,编译器会自动实现6个默认成员函数,需要注意,最重要的是前4个,其次就是C11以后还会增加两个默认成…

SpringBoot 优雅实现超大文件上传

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 前言 文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传&…

hadoop学习笔记2-hdfs

3.HDFS 3.1HDFS两类节点 namenode:名称节点datanode:数据节点 1.namenode 1)namenode用来存储元数据,接收客户端的读写请求,namenode的元数据会分别保存在磁盘和内存中,保存到内存是为了快速查询数据信…

一文让你学会python:面向对象

面向对象编程(OOP) 一.类与实例 1.类: 是对现实世界描述的一种类型,是抽象的,是实例的模板,类名采用大驼峰,定义方式为 class 类名: pass 。 2.实例: 根据类创建的具体对象&…