首页主机资讯opencv如何获取轮廓内所有像素

opencv如何获取轮廓内所有像素

时间2024-06-10 10:10:03发布访客分类主机资讯浏览493
导读:要获取轮廓内所有像素,可以通过使用cv2.findContours( 函数找到轮廓,然后使用cv2.drawContours( 函数将轮廓绘制在一副空白图像上,最后使用numpy的np.where( 函数获取轮廓内的像素坐标。 以下是一个示...

要获取轮廓内所有像素,可以通过使用cv2.findContours()函数找到轮廓,然后使用cv2.drawContours()函数将轮廓绘制在一副空白图像上,最后使用numpy的np.where()函数获取轮廓内的像素坐标。

以下是一个示例代码:

import cv2
import numpy as np

# 读取图像
image = cv2.imread('input.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化
ret, thresh = cv2.threshold(gray, 127, 255, 0)

# 寻找轮廓
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 创建一副空白图像
blank_image = np.zeros_like(image)

# 绘制轮廓
cv2.drawContours(blank_image, contours, -1, (255, 255, 255), -1)

# 获取轮廓内所有像素坐标
pixels = np.where(blank_image == 255)

# 打印轮廓内的像素坐标
for i in range(len(pixels[0])):
    x = pixels[0][i]
    y = pixels[1][i]
    print(f'Pixel at ({
x}
, {
y}
): {
image[x, y]}
    ')

# 显示结果
cv2.imshow('Contours', blank_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

这段代码首先读取一幅图像,然后找到图像中的轮廓,绘制轮廓在一副空白图像上,并通过np.where()函数获取轮廓内的像素坐标。最后打印出轮廓内的像素坐标,并显示绘制有轮廓的图像。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: opencv如何获取轮廓内所有像素
本文地址: https://pptw.com/jishu/679198.html
hbase增量导入数据的方法是什么 linux怎么获取windows文件

游客 回复需填写必要信息