python 分割 画图像的轮廓
import numpy as np
import cv2
__author__ = 'xinyang'
Img_N = 130
algo_seg_folder = 'G:/ctx_2'
gt_seg_folder = 'G:/gt'
src_us_folder = 'G:/src_img'
save_folder = 'G:/only_gt_fuse'
for k in range(Img_N):
# for k in range(2):
print 'No. %d image...' % k
src_us_name = src_us_folder + '/' + str(k) + '.png'
gt_seg_name = gt_seg_folder + '/' + str(k) + '.png'
algo_seg_name = algo_seg_folder + '/' + str(k) + '.png'
src_us = cv2.imread(src_us_name, 1)
gt_seg = cv2.imread(gt_seg_name, 0)
algo_seg = cv2.imread(algo_seg_name, 0)
# get contour
gt_ret, gt_binImg = cv2.threshold(gt_seg, 127, 255, 0)
gt_im2, gt_contours, gt_hierarchy = cv2.findContours(gt_binImg, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
algo_ret, algo_binImg = cv2.threshold(algo_seg, 127, 255, 0)
algo_im2, algo_contours, algo_hierarchy = cv2.findContours(algo_binImg, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# draw contour
cv2.drawContours(src_us, gt_contours, -1, (0, 0, 255), 2)
# cv2.drawContours(src_us, algo_contours, -1, (0, 255, 0), 2)
# save
save_name = save_folder + '/' + str(k) + '.png'
cv2.imwrite(save_name, src_us)