首页 > 其他分享 >提取图片中目标物轮廓的像素尺寸

提取图片中目标物轮廓的像素尺寸

时间:2024-11-20 21:45:33浏览次数:1  
标签:image cv2 像素 thresh 尺寸 tif 轮廓 png

1.导入数据库

import cv2
import numpy as np
from PIL import Image

2.导入图片

image_tif = Image.open('1.tif')  #导入tif图像
image_tif.convert('RGB').save('1p.png','PNG') # 转换为png格式
image = cv2.imread('1p.png') #读取png图像

3.转化为灰度图

# 将图片转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 应用高斯模糊,减少噪声
blur = cv2.GaussianBlur(gray, (5, 5), 0)

4.二值化处理

# 二值化处理
ret, thresh = cv2.threshold(blur, 180, 255, cv2.THRESH_BINARY)

5.寻找目标物轮廓

# 寻找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) #检测所有轮廓,建立树状结构关系;保存水平、垂直或对角线的端点
#contours, hierarchy = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE) #检测所有轮廓,但不建立层次关系;保存轮廓上所有的点

# 遍历轮廓
for cnt in contours:
    # 计算轮廓的边界框
    x, y, w, h = cv2.boundingRect(cnt)
    
    # 计算轮廓的面积
    area = cv2.contourArea(cnt)
    
    # 根据需要的条件过滤轮廓(例如,面积大小)
    if area > 10000 and area < 20000:  # 根据面积筛选目标物
        # 绘制轮廓的边界框
        cv2.rectangle(thresh, (x, y), (x+w, y+h), (0, 0, 255), 2)
        
        # 打印尺寸
        print(f"Object width: {w}, Object height: {h}")

# 显示图片
cv2.imshow('Detected Objects', thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()

6.结果展示

image

结果展示: Object width: 111, Object height: 140

完整代码
import cv2
import numpy as np
from PIL import Image


# 读取图片
#image = cv2.imread('1.tif')

image_tif = Image.open('1.tif')  #导入tif图像
image_tif.convert('RGB').save('1p.png','PNG') # 转换为png格式
image = cv2.imread('1p.png') #读取png图像

# 将图片转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 应用高斯模糊,减少噪声
blur = cv2.GaussianBlur(gray, (5, 5), 0)


# 二值化处理
ret, thresh = cv2.threshold(blur, 180, 255, cv2.THRESH_BINARY)

# 寻找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) #检测所有轮廓,建立树状结构关系;保存水平、垂直或对角线的端点
#contours, hierarchy = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE) #检测所有轮廓,但不建立层次关系;保存轮廓上所有的点

# 遍历轮廓
for cnt in contours:
    # 计算轮廓的边界框
    x, y, w, h = cv2.boundingRect(cnt)
    
    # 计算轮廓的面积
    area = cv2.contourArea(cnt)
    
    # 根据需要的条件过滤轮廓(例如,面积大小)
    if area > 10000 and area < 20000:  # 根据面积筛选目标物
        # 绘制轮廓的边界框
        cv2.rectangle(thresh, (x, y), (x+w, y+h), (0, 0, 255), 2)
        
        # 打印尺寸
        print(f"Object width: {w}, Object height: {h}")

# 显示图片

cv2.imshow('Detected Objects', thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()

标签:image,cv2,像素,thresh,尺寸,tif,轮廓,png
From: https://www.cnblogs.com/ShangWayne/p/18559379

相关文章

  • 点云学习笔记19——RANSAC拟合点云轮廓的外接圆
    #include<pcl/io/pcd_io.h>#include<pcl/point_types.h>#include<pcl/surface/convex_hull.h>#include<pcl/visualization/pcl_visualizer.h>#include<iostream>#include<vector>#include<cmath>//定义一个结构体Circle......
  • 像素风游戏:死亡细胞Dead Cells中文激活版
    《死亡细胞》(DeadCells)是一款融合了类银河战士恶魔城元素的横版动作Roguelike游戏。玩家在游戏中扮演一个无名的死者灵魂,操控复活的躯体探索变化莫测的岛屿。游戏以其独特的像素风格、流畅的战斗系统、随机生成的地图和敌人配置而著称,玩家需不断收集细胞解锁新能力和装备,挑战强......
  • 断桥铝窗框壁厚2.0mm及以上的标准表格,涵盖了不同部件和相应的壁厚要求。此表格有助于
    断桥铝窗框壁厚2.0mm及以上的标准表格,涵盖了不同部件和相应的壁厚要求。此表格有助于选择适合大尺寸窗户或高层建筑的窗框材料。断桥铝窗框壁厚2.0mm及以上标准表格部件/参数壁厚(mm)适用标准适用范围/特点外框壁厚2.0-2.5国家标准GB/T8478-2019外框壁厚直接......
  • 家用电线的常用尺寸(线径)、规格和应用范围如下所示。表格内容包括了不同电线的额定电流
    家用电线的常用尺寸(线径)、规格和应用范围如下所示。表格内容包括了不同电线的额定电流、线径、常见用途等信息。电线规格(mm²)线径(mm)额定电流(A)常见应用1.5mm²1.38mm10A照明回路、插座回路、小功率电器如电风扇、台灯等2.5mm²1.78mm16A小型电器、大功......
  • KBPC3510-ASEMI整流桥KBPC3510参数、封装、尺寸
    编辑:llKBPC3510-ASEMI整流桥KBPC3510参数、封装、尺寸型号:KBPC3510品牌:ASEMI封装:KBPC-4正向电流:35A反向电压:1000V引脚数量:4芯片个数:4芯片尺寸:50MIL漏电流:>10ua恢复时间:>2000ns浪涌电流:400A芯片材质:GPP硅芯片正向电压:1.10V封装尺寸:如图特性:整流桥、插件桥堆工作结......
  • css动态检测视口屏幕的尺寸
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>css动态检测屏幕的视口尺寸</title&g......
  • 轮廓线DP
    更新日志概念类似于状态压缩DP,但我们储存的是轮廓线上的状态。有些时候,也不需要进行状态压缩,而可以用某一点的状态代表一个区域的状态。思路轮廓线就是已经决策的与尚未决策的部分的分界线,我们储存分界线上已经决策过的所有节点的状态。借图OI-wiki:图中最粗的那一条就......
  • KBL410-ASEMI整流桥KBL410参数、封装、尺寸
    编辑:llKBL410-ASEMI整流桥KBL410参数、封装、尺寸型号:KBL410品牌:ASEMI封装:KBL-4正向电流:4A反向电压:1000V引脚数量:4芯片个数:4芯片尺寸:50MIL漏电流:>10ua恢复时间:>2000ns浪涌电流:200A芯片材质:GPP硅芯片正向电压:1.10V封装尺寸:如图特性:整流桥、插件桥堆工作结温:-50℃~......
  • 瓷砖的规格种类非常多,适用于不同场景和用途。常见的规格通常按尺寸、材质、功能和安装
    瓷砖的规格种类非常多,适用于不同场景和用途。常见的规格通常按尺寸、材质、功能和安装方式等进行分类。下面是一些常见瓷砖规格及其施工建议的对比表格,帮助选择适合的规格和施工人数。瓷砖规格与施工建议规格/尺寸(mm)适用场景常见材质适用类型施工人数建议优点缺点......
  • Halcon教程:多方法提取轮廓坐标
    欢迎来到广州研为官方频道!我们将在频道中不断更新运动控制案例讲解、小型项目代码讲解、运动控制知识科普、机器视觉知识科普等内容,只为与您一起交流分享运动控制的那些事。目录1轮廓加工ContourProcessing2edges_sub_pix提取图像轮廓3轮廓获取轮廓坐标3.1获取轮廓......