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)