import cv2 as cv
import numpy as np
def get_mask(ori_image, syn_image, thr=32):
syn_h, syn_w, _ = syn_image.shape # (338, 600, 3)
# cv.imshow('ori', ori_image)
# cv.imshow('syn', syn_image)
#print(ori_image.shape) #(360, 640, 3)
ori_re = cv.resize(ori_image, (syn_w, syn_h),interpolation=cv.INTER_LINEAR)
# cv.imshow('ori_re', ori_re)
sub_img = ori_re.astype(np.int16)-syn_image.astype(np.int16)
sub_img = np.abs(sub_img).astype(np.uint8)
gray_sub_img = cv.cvtColor(sub_img, cv.COLOR_BGR2GRAY)
np.savetxt(r"D:\PycharmProjects\pythonProject2\GenMask\MaskData\2.txt", gray_sub_img, fmt='%d')
mask = (gray_sub_img>thr).astype(np.uint8)*255
# cv.imshow('sub_img', sub_img)
# cv.imshow('gray_sub_img', gray_sub_img)
# cv.imshow('mask', mask)
# cv.waitKey()
return mask
raw_img = cv.imread(r'D:\PycharmProjects\pythonProject2\GenMask\RawData\c4-train-1-2.jpg')
syn_image = cv.imread(r'D:\PycharmProjects\pythonProject2\GenMask\SynData\c4-train-1-2.jpg')
mask = get_mask(raw_img, syn_image, 32)
print(type(mask))
#保存mask到txt文件夹
np.savetxt(r"D:\PycharmProjects\pythonProject2\GenMask\MaskData\1.txt",mask,fmt='%d')
cv.imwrite(r"D:\PycharmProjects\pythonProject2\GenMask\MaskData\{}.jpg".format(1), mask)
cv.imshow('mask', mask)
cv.waitKey()
两张图片相减得到交集部分 python
最新推荐文章于 2024-04-24 13:35:29 发布