Вы можете сделать это с помощью Python / OpenCV, сначала нарисовав закрашенный белым многоугольник на черном фоне в качестве маски из четырех точек. Используйте np.where, чтобы найти, а затем распечатать все точки на изображении, соответствующие белым пикселям в маске.
Ввод:
import cv2
import numpy as np
# read image
image = cv2.imread('lena.png')
# create mask with zeros
mask = np.zeros((image.shape), dtype=np.uint8)
# define points (as small diamond shape)
pts = np.array( [[[25,20],[30,25],[25,30],[20,25]]], dtype=np.int32 )
cv2.fillPoly(mask, pts, (255,255,255) )
# get color values
values = image[np.where((mask == (255,255,255)).all(axis=2))]
print(values)
# save mask
cv2.imwrite('diamond_mask.png', mask)
cv2.imshow('image', image)
cv2.imshow('mask', mask)
cv2.waitKey()
Маска:
Результаты:
[[108 137 232]
[104 134 232]
[108 136 231]
[106 134 231]
[109 133 228]
[108 136 229]
[109 137 230]
[110 135 232]
[103 126 230]
[112 134 228]
[114 136 228]
[111 138 230]
[110 137 233]
[103 135 234]
[103 126 230]
[101 120 226]
[108 137 230]
[112 133 228]
[114 136 227]
[115 139 232]
[112 137 232]
[105 134 233]
[102 128 232]
[ 98 119 226]
[ 93 105 220]
[108 139 230]
[110 137 230]
[112 135 230]
[113 135 230]
[111 138 231]
[112 139 232]
[109 134 233]
[101 128 232]
[100 120 224]
[ 90 104 221]
[ 87 95 211]
[111 138 229]
[109 135 231]
[109 136 230]
[113 141 233]
[110 139 233]
[105 136 234]
[101 127 232]
[ 95 117 225]
[ 90 107 220]
[110 137 231]
[110 138 231]
[107 140 236]
[110 139 233]
[104 135 234]
[105 130 231]
[ 92 116 227]
[114 141 234]
[112 142 235]
[111 140 235]
[111 138 234]
[110 132 232]
[114 140 234]
[108 140 233]
[107 134 233]
[107 140 235]]