opencv如何根据不规则轮廓关键点获取轮廓上的所有坐标,如图像标注后的轮廓

本文介绍如何利用OpenCV通过不规则轮廓的关键点来获取整个轮廓的所有坐标点,主要涉及图像处理中的掩模和轮廓点提取技术。
摘要由CSDN通过智能技术生成

首先,根据轮廓上的关键点获取掩膜mask

# coding=utf-8
import numpy as np
import json
import cv2

image = cv2.imread("/home/dell/1575532290620423707.jpg")#原始图像路径
lists = [[ , ],[ , ],[ , ],[ , ],[ , ]]#填入自己轮廓关键点的像素坐标
b = np.array([lists],dtype = np.int32)
im = np.zeros(image.shape[:2], dtype = "uint8")
cv2.polylines(im, b, 1, 255)
cv2.fillPoly(im, b, 255)

mask = im#生成的掩膜
cv2.imwrite('/home/dell/yan.jpg',mask)#保存掩膜
cv2.imshow("Mask", mask)#可视化掩膜
masked = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow("Mask to Image", masked)
cv2.waitKey(0)

其次,根据掩膜获取所有的轮廓点

import cv2
import numpy as np
import time

def get_contour(img):
    """获取连通域
    :param img: 输入图片
    :return: 最大连通域
    """
    # 灰度化, 二值化, 连通域分析
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    ret, img_bin = cv2.threshold(img_gray, 127, 255, c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值