python-opencv部分函数使用

实际操作的opencv版本: 4.4.0.42
安装指令(记得换安装源,这样安装的快些):

pip opencv-python==4.4.0.42  / conda opencv-python==4.4.0.42

1.cv2.findContours

简介:cv2.findContours()函数是用来检测物体轮廓的函数
定义:def findContours(image, mode, method, contours=None, hierarchy=None, offset=None)
		image - 要检测的图片,注意:该函数输入的图片为二值图,即黑白的(不是灰度图)
		mode - 轮廓的检索模式:(仅写出常用mode)
    		①:cv2.RETR_EXTERNAL - 只检测外轮廓
    		②:cv2.RETR_CCOMP - 建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息
		method - 轮廓的近似办法:(仅写出常用method)
    		①:cv2.CHAIN_APPROX_NONE - 存储所有的轮廓点,相邻的两个点的像素位置差不超过1
    		②:cv2.CHAIN_APPROX_SIMPLE - 压缩水平方向、垂直方向、对角线方向的元素,只保留该方向的终点坐标
使用:
	# 以二值图形式读取图片
	img = cv2.imread(‘test.jpg’, 0)
	# 寻找可能的轮廓线
	contours, hierarchy = cv2.findContours(img, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_NONE)

2.cv2.fitEllipse

简介:cv2.fitEllipse()函数是用来拟合椭圆的函数
定义:def fitEllipse(points)
		points - 轮廓线点列
使用:
	# 以二值图形式读取图片
	img = cv2.imread(‘test.jpg’, 0)
	# 寻找可能的轮廓线
	contours, hierarchy = cv2.findContours(img, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_NONE)
	for contour in contours: 
	  # 过滤过短的轮廓线,因为拟合一个椭圆最少要5个点
      if contour.size < 6:
        continue
      # 拟合椭圆,输入筛选出的轮廓线点列,输出((x坐标,y坐标),(长轴,短轴),倾角)
      # 注意,输出的是长轴和短轴,不是半长轴和半短轴,输出的角度为角度制格式,不是弧度制格式
      centre_pref, axil_pref, theta_pref = cv2.fitEllipse(contour)

3.cv2.ellipse

简介:cv2.ellipse()函数是用来画椭圆的函数
定义:def ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
		img - 要画的图像输入
		center - 椭圆中心点
		axes - 椭圆的半长轴和半短轴
		angle - 倾斜角度(输入的角度为角度制格式,不是弧度制格式)
		startAngle - 起始角度
		endAngle - 结束角度
		color - 椭圆线条颜色,服从BGR的规律
		thickness=None - 椭圆线的粗细,-1为将整个椭圆进行填充
		lineType=None - 椭圆边界的类型(可选参数)
		shift=None - 中心坐标中的小数位数和轴的值(可选参数)
使用:
	# 读取图片
	img = cv2.imread(‘test.jpg’)
	# 画椭圆,注意:cv2.ellipse()函数所输入的椭圆圆心坐标、半长短轴长度都需要是整形的,即整数
    cv2.ellipse(img , (int(x), int(y)), (int(axil_x), int(axil_y)), theta, 0, 360, color=(0, 0, 255), thickness=1)
    # 显示椭圆
    cv2.imshow("contours", img )
    # 显示等待
    cv2.waitKey()
    # 摧毁显示窗口,即此张图片显示结束
    cv2.destroyAllWindows()
  • 未完待续。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python OpenCV中,shape()函数用于获取图像的形状。它返回一个元组,其中包含图像的行数、列数和通道数(如果图像是彩色的)。下面是一个示例: ```python import cv2 # 读取一张图像 img = cv2.imread('image.jpg') # 获取图像的形状 shape = img.shape # 输出图像的行数、列数和通道数 print('行数:', shape[0]) print('列数:', shape[1]) print('通道数:', shape[2]) ``` 如果图像是灰度图像,则只会返回行数和列数,不包括通道数。 ### 回答2: 在PythonOpenCV库中,shape函数是用于获取图像的形状信息的函数。 shape函数的语法格式为:`shape = img.shape` 其中,img为需要获取形状信息的图像对象。 shape函数返回一个元组,包含了图像的行数、列数以及通道数。具体而言,返回的元组包含三个值,分别为: 1. 行数:表示图像的高度,即像素的垂直方向上的数量; 2. 列数:表示图像的宽度,即像素的水平方向上的数量; 3. 通道数:表示图像的颜色通道数量,通常为1(灰度图像)或3(彩色图像)。 通过shape函数,我们可以方便地获取到图像的尺寸信息,根据这些信息可以进行后续的处理和操作。例如,在图像处理中,我们可以利用shape函数来获取图像的尺寸信息,进而计算图像的像素数量、图像的面积等。 需要注意的是,shape函数返回的是一个元组,因此我们可以通过索引来获取它的具体数值。例如,如果我们使用`shape[0]`可以获取图像的行数,使用`shape[1]`可以获取图像的列数,使用`shape[2]`可以获取图像的通道数。 综上所述,shape函数PythonOpenCV库中是用于获取图像的形状信息的函数,通过它我们可以方便地获取图像的行数、列数以及通道数,为后续的图像处理提供了基本的参数。 ### 回答3: 在PythonOpenCV库中,shape函数主要用于获取图像的形状信息。 图像通过shape函数返回一个包含三个元素的元组,即(行数, 列数, 通道数)。其中,行数表示图像的高度,即像素的数量,用于表示图像在垂直方向上的大小;列数表示图像的宽度,即像素的数量,用于表示图像在水平方向上的大小;通道数表示图像的颜色通道数量,常用的是3个通道,分别是红、绿、蓝(RGB)。 例如,对于一张RGB图像,其形状为(480, 640, 3),说明图像的高度为480个像素,宽度为640个像素,且有3个颜色通道。在处理图像时,我们可以利用这些信息来设置程序的逻辑和处理过程。 使用shape函数的语法如下: shape = image.shape 其中,image表示要获取形状信息的图像。 总而言之,shape函数Python-OpenCV中用于获取图像的形状信息,提供了图像的高度、宽度和颜色通道数。这些信息可以帮助我们更好地理解和处理图像,并使得图像处理的过程更加灵活和准确。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值