【发布时间】:2021-11-17 19:28:28
【问题描述】:
我的任务是从代码生成的分段图像(蓝点)中获取 x,y 坐标。我如何自动化这个过程?我的最终结果应该是第二张图像中产生的这些蓝点的 x,y 坐标的压缩。
生成蓝点的代码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
# import cv2_imshow
# from google.colab.patches import cv2_imshow
image = cv2.imread('./S3/frame35.jpg')
#cv2_imshow(image)
result = image.copy()
image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# lower boundary RED color range values; Hue (0 - 10)
lower1 = np.array([0, 100, 20])
upper1 = np.array([10, 255, 255])
# upper boundary RED color range values; Hue (160 - 180)
lower2 = np.array([160,100,20])
upper2 = np.array([179,255,255])
lower_mask = cv2.inRange(image, lower1, upper1)
upper_mask = cv2.inRange(image, lower2, upper2)
full_mask = lower_mask + upper_mask;
result = cv2.bitwise_and(result, result, mask=full_mask)
plt.figure(figsize=[20,20])
plt.axis("off")
# plt.subplot(121);plt.imshow(image[:,:,::-1]);plt.title("Original Image",fontdict={'fontsize': 25});plt.axis('off');
plt.subplot(122);plt.imshow(result, cmap='gray');plt.title("Mask of red Color",fontdict={'fontsize': 25});plt.axis('on');
plt.savefig('mask_1.jpg', bbox_inches = 'tight')
# cv2_imshow(full_mask)
# cv2_imshow(result)
#print(full_mask)
#print(result)
cv2.waitKey(0)
cv2.destroyAllWindows()
【问题讨论】:
-
这个问题已经在stackoverflow.com/questions/51646047/…得到解答
标签: python matplotlib image-processing coordinates image-segmentation