用opencv感兴趣区域提取(圆形区域)

该博客主要介绍了如何利用OpenCV库在Python中处理图像,通过读取图像、灰度转换、二值化、寻找轮廓,最终对直径大于200像素的圆形区域进行提取并保存。具体步骤包括阈值处理、最小外接圆检测以及使用掩模技术进行图像分离。
摘要由CSDN通过智能技术生成
import cv2
import numpy as np
from glob import glob
import os

img_path = glob(r"F:/YjnJiaNing/val/l1/*.jpg")
path_save = r"F:/YjnJiaNing/val/region_of_interest/L1_ROI"

for i, file in enumerate(img_path):
    name = os.path.join(path_save, "%d.png" % i)
    image = cv2.imread(file)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    _, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
    contours, _ = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    for cont in contours:
        (x, y), radius = cv2.minEnclosingCircle(cont)
        if radius > 200:
            ming = cv2.circle(image, (int(x), int(y)), int(radius), (0, 0, 255), 2)
            print("radius is ")
            print(radius)
            print((x, y))
            roi = np.zeros(image.shape[:2], np.uint8)
            roi = cv2.circle(roi, (int(x), int(y)), int(radius), 255, cv2.FILLED)
            mask = np.ones_like(image) * 255
            mask = cv2.bitwise_and(mask, image, mask=roi) + cv2.bitwise_and(mask, mask, mask=~roi)
            cv2.imwrite(name, mask)
            print(i, name)

 

原图

 

取圆后图像

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值