|
|
|
|
@ -125,10 +125,21 @@ def basic_drawing(request):
|
|
|
|
|
return HttpResponse('请使用POST方法')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def process_filter_rgb(para, data):
|
|
|
|
|
limit = para.get('limit', 100)
|
|
|
|
|
c_range = para.get('range', [90, 230])
|
|
|
|
|
if np.max(data) > limit:
|
|
|
|
|
data = data * (255 / np.max(data))
|
|
|
|
|
tmp = np.zeros_like(data)
|
|
|
|
|
tmp[((data > c_range[0]) & (data <= c_range[1]))] = 255
|
|
|
|
|
return tmp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@csrf_exempt
|
|
|
|
|
def rgb_color_space(request, color):
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
image_name = request.GET.get('img')
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
para = json.loads(request.body)
|
|
|
|
|
image_name = para['img']
|
|
|
|
|
img = cv2.imread(PREFIX + image_name)
|
|
|
|
|
data = None
|
|
|
|
|
if color == 'r':
|
|
|
|
|
@ -137,10 +148,36 @@ def rgb_color_space(request, color):
|
|
|
|
|
data = img[:, :, 1]
|
|
|
|
|
elif color == 'b':
|
|
|
|
|
data = img[:, :, 0]
|
|
|
|
|
if para.get('filter', False):
|
|
|
|
|
data = process_filter_rgb(para, data)
|
|
|
|
|
filename = color + '-' + image_name
|
|
|
|
|
cv2.imwrite(PREFIX + filename, data)
|
|
|
|
|
return HttpResponse(filename)
|
|
|
|
|
return HttpResponse('请使用POST方法')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@csrf_exempt
|
|
|
|
|
def hsv_color_space(request, color):
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
para = json.loads(request.body)
|
|
|
|
|
image_name = para['img']
|
|
|
|
|
img = cv2.imread(PREFIX + image_name)
|
|
|
|
|
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
|
|
|
|
|
data = None
|
|
|
|
|
if color == 'h':
|
|
|
|
|
data = hsv[:, :, 0]
|
|
|
|
|
elif color == 's':
|
|
|
|
|
data = hsv[:, :, 1]
|
|
|
|
|
elif color == 'v':
|
|
|
|
|
data = hsv[:, :, 2]
|
|
|
|
|
elif color == 'filter':
|
|
|
|
|
upper_bound = para.get('ub', [0, 0, 0])
|
|
|
|
|
lower_bound = para.get('lb', [200, 40, 100])
|
|
|
|
|
data = cv2.inRange(hsv, np.array(upper_bound), np.array(lower_bound))
|
|
|
|
|
filename = color + '-' + image_name
|
|
|
|
|
cv2.imwrite(PREFIX + filename, data)
|
|
|
|
|
return HttpResponse(filename)
|
|
|
|
|
return HttpResponse('请使用GET方法')
|
|
|
|
|
return HttpResponse('请使用POST方法')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def r(request):
|
|
|
|
|
|