博文

『OpenCV-Python』获取图片的基本参数信息

  点赞 + 关注 + 收藏 = 学会了 推荐 《OpenCV-Python专栏》 在图像处理领域,了解图像的基本信息是必不可少的第一步。 之前已经使用 cv2.imread() 方法将图片读取出来了。我们还可以使用 OpenCV 提供的一些方法去读取图片的尺寸、通道数、图片像素总数等信息。 获取图片宽高和通道数 通过 shape 属性可以直接获取图像的维度信息。 import cv2 ​ # 读取图片 img = cv2 . imread ( '德育处主任.jpeg' ) ​ # 获取图片的宽、高和通道数 height , width , channels = img . shape print ( f'图片高度: { height } ' ) print ( f'图片宽度: { width } ' ) print ( f'图片通道数: { channels } ' ) 我读取的是一张 1280x1280 的彩色图像。运行代码后,在终端会输出以下内容。 图片高度: 1280 图片宽度: 1280 图片通道数: 3 注意:如果图片是灰度图, shape 只有两个值(高度和宽度),没有通道数。 处理灰度图的情况: # 检查是否为灰度图 if len ( image . shape ) == 2 :     height , width = image . shape     print ( "这是灰度图" ) else :     height , width , channels = image . shape     print ( "这是彩色图" ) 获取像素数据类型 图片的每个像素都有一个数据类型,常见的数据类型包括 uint8 (0-255)。可以通过 Numpy 的 dtype 属性获取。 # 获取数据类型 pixel_dtype = img . dtype print ( f"像素数据类型: { pixel_dtype } " ) 我的示例图片是 uint8 ,所以输出的结果是: 像素数据类型:uint8 计算图片大小(总像素数) 通过宽度、高度和通道数,可以计算图片的大小。用到的属性是 s...

『OpenCV-Python』绘制文

图片
  点赞 + 关注 + 收藏 = 学会了 推荐 《OpenCV-Python专栏》 绘制文字(数字和英文) OpenCV 提供了 cv2.putText() 方法,可以方便地在图像上绘制文本。 cv2.putText() 的基本用法: cv2 . putText ( img , text , org , fontFace , fontScale , color , thickness , lineType ) img :目标图像。 text :要绘制的文字。 org :文字左下角的起始坐标。 fontFace :字体类型(如 cv2.FONT_HERSHEY_SIMPLEX)。 fontFace 可传入的字体类型 OpenCV 也提供了选项: cv2.FONT_HERSHEY_SIMPLEX :无衬线字体(常用)。 cv2.FONT_HERSHEY_PLAIN :简单无衬线字体。 cv2.FONT_HERSHEY_DUPLEX :双线无衬线字体。 cv2.FONT_HERSHEY_COMPLEX :衬线字体。 cv2.FONT_HERSHEY_TRIPLEX :三线衬线字体。 cv2.FONT_HERSHEY_SCRIPT_SIMPLEX :手写字体。 cv2.FONT_HERSHEY_SCRIPT_COMPLEX :复杂手写字体。 fontScale :字体大小比例。 color :文字颜色,格式为 (B, G, R)。 thickness :文字线条粗细。 lineType :线型,如 cv2.LINE_AA。 举个例子 import cv2 import numpy as np ​ # 创建空白图像 img = np . zeros (( 400 , 400 , 3 ), dtype = np . uint8 ) img . fill ( 255 )   # 将背景设置为白色 ​ # 绘制不同样式的文字 cv2 . putText ( img , "Hello OpenCV!" , ( 50 , 50 ), cv2 . FONT_HERSHEY_SIMPLEX , 1 , ( 0 , 0 , 0 ), 2 )   # 黑色简单字体 cv2 . putText ( img , "Hello OpenCV!...

『OpenCV-Python』绘制图

图片
  点赞 + 关注 + 收藏 = 学会了 推荐 《OpenCV-Python专栏》 使用 OpenCV 做目标检查时,我们可以通过 OpenCV 提供的图形绘制功能,将监测到的目标框起来,方便我们调试。这些功能在数据可视化、图像标注等场景中非常实用。 OpenCV 支持绘制以下图形: 线段 矩形 圆形 椭圆 多边形 填充多边形 带箭头的线 用法都很简单,动手试试~ 绘制线段 绘制线段的方法叫 cv2.line() 可传以下参数 cv2 . line ( img , pt1 , pt2 , color , thickness = None , lineType = None , shift = None ) img : 要绘制直线的目标图像。 pt1 : 起点坐标。 pt2 : 终点坐标。 color : 线条颜色( (B, G, R) 格式)。 thickness : 线条宽度(默认 1,负值无效)。 lineType : 线条类型( cv2.LINE_8 默认)。 cv2.LINE_8 (默认值):8-connected 线条(像素完全连接)。 cv2.LINE_4 :4-connected 线条(像素部分连接)。 cv2.LINE_AA :抗锯齿线条(平滑效果更好)。 shift : 坐标的小数点精度(用于处理亚像素坐标)。默认为 0,表示整数坐标。 import cv2 import numpy as np ​ # 创建空白图像 img = np . zeros (( 400 , 400 , 3 ), dtype = np . uint8 ) ​ # 绘制不同类型的线条 cv2 . line ( img , ( 50 , 50 ), ( 200 , 50 ), ( 255 , 255 , 255 ), 1 )             # 白色线条,默认类型 cv2 . line ( img , ( 50 , 100 ), ( 200 , 100 ), ( 0 , 255 , 0 ), 30 )           # 绿色线条,粗细为 30 cv2 . line ( img , ( 50 , 150 ), ( 200 , 15...