首页 > 其他分享 >啤酒瓶瓶口检测及其圆心坐标与半径计算

啤酒瓶瓶口检测及其圆心坐标与半径计算

时间:2024-10-31 19:45:29浏览次数:3  
标签:瓶口 center img cv2 啤酒瓶 圆心 radius y1 model

第一步利用 yolov8 训练出最佳的检测瓶盖的模型

安装环境:

python>=3.8

pip install ultralytics

(未用到 gpu)

代码:

from ultralytics import YOLO

 

if __name__ == '__main__':

    # 加载预训练模型

    model = YOLO('yolov8n.pt')  # 你可以选择其他预训练模型,如 yolov8s.pt, yolov8m.pt

  # 训练模型

    results = model.train(data='C:\\Users\\lenovo\\Desktop\\bottle_cap_opened.v3i.yolov8-obb\\data.yaml', epochs=90, imgsz=640)

 

检测代码(来自gpt):

from ultralytics import YOLO

import cv2

 

# 加载训练好的模型

model_path = 'C:/Users/lenovo/Desktop/bottle_cap_opened.v3i.yolov8-obb/runs/detect/train8/weights/best.pt'  # 替换为你的模型路径

model = YOLO(model_path)

 

# 加载图像

image_path = 'valid/images/16783_0_jpg.rf.555280bf85d0054adbced24477843732.jpg'  # 替换为你的图像路径

img = cv2.imread(image_path)

 

# 检查图像是否加载成功

if img is None:

    print(f"Error: Unable to load image from {image_path}")

    exit()

 

# 假设图像的分辨率越大框架越小

dpi = 3300

 

# 进行检测

results = model(img)

 

# 解析检测结果

scale_factor = 0.83  # 调整比例因子,调整框架的因子

for result in results:

    boxes = result.boxes

    for box in boxes:

        x1, y1, x2, y2 = box.xyxy[0]

        x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)

        center_x = (x1 + x2) // 2

        center_y = (y1 + y2) // 2

        width = (x2 - x1) * scale_factor

        height = (y2 - y1) * scale_factor

        radius_pixels = int(max(width, height) // 2)  # 确保 radius 是整数

        

        # 将像素转换为厘米

        radius_cm = (radius_pixels / dpi) * 2.54

        

        print(f"圆心坐标 (像素): ({center_x}, {center_y}), 半径 (像素): {radius_pixels}")

        print(f"圆心坐标 (厘米): ({center_x / dpi * 2.54}, {center_y / dpi * 2.54}), 半径 (厘米): {radius_cm}")

 

        # 可视化结果

        cv2.circle(img, (center_x, center_y), radius_pixels, (0, 255, 0), 2)

        cv2.circle(img, (center_x, center_y), 5, (0, 0, 255), -1)

 

# 显示图像

cv2.imshow("Image", img)

cv2.waitKey(0)

cv2.destroyAllWindows()

结果:

886a31c68844437c979d6e0b45dd8c50.png

 记录课堂小作业(需要数据集和代码找我要)

标签:瓶口,center,img,cv2,啤酒瓶,圆心,radius,y1,model
From: https://blog.csdn.net/weixin_46943094/article/details/143406073

相关文章

  • ECharts 饼状图,圆心文字提示,默认显示第一个;点击外部数据高亮放大echarts饼图,点击饼状
    描述得乱七八糟的,其实就是外面有个列表,类似于图列,但是他特别复杂我就把图里给写在外面了差不多长这样需求是这样的,点击饼状图,外面的列表高亮;点击外面的列表,饼状图高亮 来吧,上代码 eChart是图标,ul是列表<divref="chart"></div><ulclass="List"><liv-for="(item,i......
  • 九点共圆及其圆心证明(证明过程已更新)
    主要思路:固定\(P,L\),证明其它七个点均在以\(PL\)为直径的圆上。条件的来源会备注在括号内。背景可能影响观感,建议打开极简模式阅读。这是一个三角形\(\triangleABC\),设\(BC,AC,AB\)边上垂足分别为\(D,E,F\),其边上中点分别为\(L,M,N\),设垂心为\(H\),外心为\(O\),\(AH,B......
  • 已知两圆的圆心半径,求交点坐标——CAD VBA 解决
    如下图,dwg图中若干图形,运行代码后提示选择两个圆,然后判断两个圆位置关系和相交点坐标:本例难点在于通过几何知识求出交点坐标。几何背景假设有两个圆:-圆1:圆心(O_1(x_1,y_1)),半径(r_1)-圆2:圆心(O_2(x_2,y_2)),半径(r_2)圆心(O_1)和(O_2)之间的......
  • 最小二乘法拟合圆心
    #include<map>#include<vector>#include<iostream>#include<string>voidFitCenterByLeastSquares(std::map<int,std::vector<double>>mapPoint,std::vector<double>&centerP,double&radius){do......
  • 已知椭圆长轴,短轴,圆心,旋转角度求任意椭圆外包矩形
    参考:https://blog.csdn.net/fangmin723/article/details/118595271参考:https://blog.csdn.net/liuxiang3/article/details/114258907一、已知椭圆长轴,短轴,圆心,旋转角度求椭圆(旋转未做平移)方程一般式:一般来说,椭圆可以以任何一点为中心,也可以有与坐标轴不平行的轴。这样的椭圆总......
  • 圆心科技业绩稳健 营收毛利齐升 加速赴港上市
    在我国医疗健康领域,行业深耕超过8年的圆心科技凭借独特的“医-药-险”全链条布局和优秀的生态联动服务能力,成为行业内备受瞩目的代表性企业。据圆心科技于2023年12月18日更新的招股书显示,2023年上半年,圆心科技总营收达到了46.45亿元,同比增长43.1%,毛利持续向好,总收入毛利为8.8%,......
  • 构建更加完善的全病程患者服务网络,圆心科技上市之路愈发顺畅
    中国的智慧医疗模式,是一种创新型的医疗模式,通过建立线上医疗服务平台,将优质医疗资源下沉到基层社区,使得居民可以更加便捷地获得医疗服务。这种模式的出现,为缓解医疗资源紧张问题提供了新的思路和途径。为更好地推进智慧医疗的建设,我国医疗健康企业圆心科技构建了一套贯通诊......
  • 进一步探索智慧医疗新模式,圆心科技上市前景广阔
    在政策、监管的多方推动下,我国智慧医疗形势一片大好,数据显示,2022年我国智医疗应用规模约为780.5亿元,到2023年国内智慧医疗应用规模可达到936.6亿元,未来市场份额也将进一步扩已经成为了众多资本眼中的香饽饽。不久前,我国知名医疗健康公司北京圆心科技就完成了多轮融资,为其赴......
  • 企业总营收实现连年递增,圆心科技上市再添砝码
    中国智慧医疗赛道经过十多年的发展演变逐渐发展成熟。随着医药分开、药械集采、“双通道”等医改政策的深入推进,相关企业再次迎来了新一波发展机遇,更加受到资本市场的关注。根据公开信息显示,我国医疗健康企业北京圆心科技集团股份有限公司于5月29日,向港交所递交了更新后的招股......
  • 医疗健康产业进入强势发展期,圆心科技上市加大
    统计数据显示,截至2021年底,全国60岁及以上老年人口达2.67亿,65岁及以上老年人口达2亿以上,老龄化程度加剧。据测算,2035年左右,60岁及以上老年人口将突破4亿,在总人口中的占比将超过30%,进入重度老龄化阶段。老龄化在衍生出许多社会问题的同时,也刺激了医疗大健康行业的发展,并且国家政......