diff --git a/basic/helper.py b/basic/helper.py index 867b0b7..06edf6d 100644 --- a/basic/helper.py +++ b/basic/helper.py @@ -37,7 +37,8 @@ def process_bg(): def process_line(para): - name, start, end, color, thickness = para['img'], para['start'], para['end'], para['color'], para['thickness'] + name, start, end, color, thickness = para['img'], para['start'], para['end'], \ + para.get('color', [255, 255, 255]), para.get('thickness', 20) img = cv2.imread(PREFIX + name) cv2.line(img, tuple(start), tuple(end), tuple(color), thickness) cv2.imwrite(PREFIX + name, img) @@ -45,7 +46,8 @@ def process_line(para): def process_rectangle(para): - name, start, end, color, thickness = para['img'], para['start'], para['end'], para['color'], para['thickness'] + name, start, end, color, thickness = para['img'], para['start'], para['end'], \ + para.get('color', [255, 255, 255]), para.get('thickness', 20) img = cv2.imread(PREFIX + name) cv2.rectangle(img, tuple(start), tuple(end), tuple(color), thickness) cv2.imwrite(PREFIX + name, img) @@ -53,8 +55,8 @@ def process_rectangle(para): def process_circle(para): - name, center, radius, color, thickness = para['img'], para['center'], para['radius'], para['color'], para[ - 'thickness'] + name, center, radius, color, thickness = para['img'], para['center'], para['radius'], \ + para.get('color', [255, 255, 255]), para.get('thickness', 20) img = cv2.imread(PREFIX + name) cv2.circle(img, tuple(center), radius, tuple(color), thickness) cv2.imwrite(PREFIX + name, img) @@ -62,8 +64,14 @@ def process_circle(para): def process_ellipse(para): - name, center, axes, angle, startangle, endangle, color, thickness = para['img'], para['center'], para['axes'], para[ - 'angle'], para['startangle'], para['endangle'], para['color'], para['thickness'] + name, center, axes, angle, startangle, endangle, color, thickness = para['img'], \ + para['center'], \ + para['axes'], \ + para.get('angle', 0), \ + para.get('startangle', 0), \ + para.get('endangle', 360), \ + para.get('color', [255, 255, 255]), \ + para.get('thickness', 20) img = cv2.imread(PREFIX + name) cv2.ellipse(img, tuple(center), tuple(axes), angle, startangle, endangle, tuple(color), thickness) cv2.imwrite(PREFIX + name, img) @@ -71,7 +79,8 @@ def process_ellipse(para): def process_polylines(para): - name, point, isclosed, color = para['img'], para['point'], para['isclosed'], para['color'] + name, point, isclosed, color = para['img'], para['point'], para.get('isclosed', True), \ + para.get('color', [255, 255, 255]) img = cv2.imread(PREFIX + name) pts = np.array(point, np.int32) pts = pts.reshape((-1, 1, 2)) @@ -81,7 +90,8 @@ def process_polylines(para): def process_text(para): - name, text, org, fontsize, color = para['img'], para['text'], para['org'], para['fontsize'], para['color'] + name, text, org, fontsize, color = para['img'], para['text'], para['org'], \ + para.get('fontsize', 14), para.get('color', [255, 255, 255]) img = cv2.imread(PREFIX + name) cv2.putText(img, text, org, fontFace=cv2.FONT_HERSHEY_SCRIPT_COMPLEX, fontScale=fontsize, color=tuple(color)) cv2.imwrite(PREFIX + name, img) diff --git a/basic/urls.py b/basic/urls.py index 71c2dcb..e8bdd5a 100644 --- a/basic/urls.py +++ b/basic/urls.py @@ -9,7 +9,7 @@ urlpatterns = [ path('hsv/', views.hsv_color_space), path('rgb/', views.rgb_color_space), path('operation', views.basic_operation), - path('resize', views.resize), + path('resize_rotate_translation', views.resize), path('rotate', views.rotate), path('translation', views.translation), path('flip', views.flip), diff --git a/basic/views.py b/basic/views.py index 49371dd..9ba894a 100644 --- a/basic/views.py +++ b/basic/views.py @@ -25,7 +25,7 @@ def upload(request): def basic_drawing(request): if request.method == 'POST': para = json.loads(request.body) - draw_type = para['type'] + draw_type = para.get('type', 'bg') if draw_type == 'bg': return HttpResponse(process_bg()) else: @@ -80,9 +80,9 @@ def hsv_color_space(request, color): 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)) + upper_bound = para.get('ub', [200, 40, 100]) + lower_bound = para.get('lb', [0, 0, 0]) + data = cv2.inRange(hsv, np.array(lower_bound), np.array(upper_bound)) filename = color + '-' + image_name cv2.imwrite(PREFIX + filename, data) return HttpResponse(filename) @@ -95,8 +95,8 @@ def basic_operation(request): para = json.loads(request.body) operator = para['operator'] img = para['img'] - has_color = para['color'] - base = para['base'] + has_color = para.get('color', 0) + base = para.get('base', 1) if operator == 'and': return HttpResponse(logic_and(img, has_color, base)) elif operator == 'or': @@ -197,7 +197,7 @@ def histogram(request): if request.method == 'POST': para = json.loads(request.body) image = para['img'] - color = para['color'] + color = para.get('color', False) histogram_name = get_image_name() + DEFAULT_FORMAT if color: img = cv2.imread(PREFIX + image) @@ -264,7 +264,7 @@ def edge_detection(request): img = process_Canny(img) # 这里由于返回格式的不同,会在process_enhance之中直接返回,不在往后执行 elif operator == 'Enhance': - process_enhance(img) + return process_enhance(img) return HttpResponse(save_image(img)) return HttpResponse('Please use POST') @@ -275,7 +275,7 @@ def line_change_detection(request): para = json.loads(request.body) image = para['img'] img = cv2.imread(PREFIX + image) - use_p = para['use_p'] + use_p = para.get('use_p', True) img = cv2.GaussianBlur(img, (3, 3), 0) edges = cv2.Canny(img, 50, 150, apertureSize=3) if use_p: @@ -355,7 +355,8 @@ def morphology(request): para = json.loads(request.body) image = para['img'] size = para.get('size', 5) - img = cv2.imread(PREFIX + image, cv2.IMREAD_UNCHANGED) + img = cv2.imread(PREFIX + image, 0) + retval, img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (size, size)) op = para['type'] if op == 'open': diff --git a/media/1.jpg b/media/1.jpg deleted file mode 100644 index 3630de3..0000000 Binary files a/media/1.jpg and /dev/null differ diff --git a/media/2.jpg b/media/2.jpg deleted file mode 100644 index 0922523..0000000 Binary files a/media/2.jpg and /dev/null differ diff --git a/media/test/affine/affine.jpg b/media/test/affine/affine.jpg new file mode 100644 index 0000000..ddbe8af Binary files /dev/null and b/media/test/affine/affine.jpg differ diff --git a/media/test/affine/image.png b/media/test/affine/image.png new file mode 100644 index 0000000..4d24e35 Binary files /dev/null and b/media/test/affine/image.png differ diff --git a/media/test/edge_detection/Roberts.jpg b/media/test/edge_detection/Roberts.jpg new file mode 100644 index 0000000..2e50af4 Binary files /dev/null and b/media/test/edge_detection/Roberts.jpg differ diff --git a/media/test/edge_detection/gradient.jpg b/media/test/edge_detection/gradient.jpg new file mode 100644 index 0000000..2135de8 Binary files /dev/null and b/media/test/edge_detection/gradient.jpg differ diff --git a/media/test/edge_detection/image.png b/media/test/edge_detection/image.png new file mode 100644 index 0000000..1d41317 Binary files /dev/null and b/media/test/edge_detection/image.png differ diff --git a/media/test/edge_detection/sharp.jpg b/media/test/edge_detection/sharp.jpg new file mode 100644 index 0000000..a9a6034 Binary files /dev/null and b/media/test/edge_detection/sharp.jpg differ diff --git a/media/test/filter/choice/choice_stop.jpg b/media/test/filter/choice/choice_stop.jpg new file mode 100644 index 0000000..0f3611f Binary files /dev/null and b/media/test/filter/choice/choice_stop.jpg differ diff --git a/media/test/filter/mean/mean_geometric.jpg b/media/test/filter/mean/mean_geometric.jpg new file mode 100644 index 0000000..5000aec Binary files /dev/null and b/media/test/filter/mean/mean_geometric.jpg differ diff --git a/media/test/filter/sort/sort_max.jpg b/media/test/filter/sort/sort_max.jpg new file mode 100644 index 0000000..37f9d2b Binary files /dev/null and b/media/test/filter/sort/sort_max.jpg differ diff --git a/media/test/filter/zao.png b/media/test/filter/zao.png new file mode 100644 index 0000000..ce5ae7a Binary files /dev/null and b/media/test/filter/zao.png differ diff --git a/media/test/flip/flip.jpg b/media/test/flip/flip.jpg new file mode 100644 index 0000000..e3e7516 Binary files /dev/null and b/media/test/flip/flip.jpg differ diff --git a/media/test/flip/image.png b/media/test/flip/image.png new file mode 100644 index 0000000..4d24e35 Binary files /dev/null and b/media/test/flip/image.png differ diff --git a/media/test/fourier/fourier.jpg b/media/test/fourier/fourier.jpg new file mode 100644 index 0000000..0659390 Binary files /dev/null and b/media/test/fourier/fourier.jpg differ diff --git a/media/test/fourier/image.jpg b/media/test/fourier/image.jpg new file mode 100644 index 0000000..37d6c0e Binary files /dev/null and b/media/test/fourier/image.jpg differ diff --git a/media/test/fourier/inverse_fourier.jpg b/media/test/fourier/inverse_fourier.jpg new file mode 100644 index 0000000..d0ffaa2 Binary files /dev/null and b/media/test/fourier/inverse_fourier.jpg differ diff --git a/media/test/histogram/after_plt.jpg b/media/test/histogram/after_plt.jpg new file mode 100644 index 0000000..64a2c05 Binary files /dev/null and b/media/test/histogram/after_plt.jpg differ diff --git a/media/test/histogram/before_plt.jpg b/media/test/histogram/before_plt.jpg new file mode 100644 index 0000000..4cd3499 Binary files /dev/null and b/media/test/histogram/before_plt.jpg differ diff --git a/media/test/histogram/color.jpg b/media/test/histogram/color.jpg new file mode 100644 index 0000000..f4c03aa Binary files /dev/null and b/media/test/histogram/color.jpg differ diff --git a/media/test/histogram/ex_1.jpg b/media/test/histogram/ex_1.jpg new file mode 100644 index 0000000..1084bed Binary files /dev/null and b/media/test/histogram/ex_1.jpg differ diff --git a/media/test/histogram/gray.jpg b/media/test/histogram/gray.jpg new file mode 100644 index 0000000..21cd0ed Binary files /dev/null and b/media/test/histogram/gray.jpg differ diff --git a/media/test/histogram/plt.jpg b/media/test/histogram/plt.jpg new file mode 100644 index 0000000..6794937 Binary files /dev/null and b/media/test/histogram/plt.jpg differ diff --git a/media/test/hsv_color_space/dog.jpg b/media/test/hsv_color_space/dog.jpg new file mode 100644 index 0000000..6b29be0 Binary files /dev/null and b/media/test/hsv_color_space/dog.jpg differ diff --git a/media/test/hsv_color_space/filter-dog.jpg b/media/test/hsv_color_space/filter-dog.jpg new file mode 100644 index 0000000..e5108dd Binary files /dev/null and b/media/test/hsv_color_space/filter-dog.jpg differ diff --git a/media/test/line_change_detection/a.png b/media/test/line_change_detection/a.png new file mode 100644 index 0000000..97bccd2 Binary files /dev/null and b/media/test/line_change_detection/a.png differ diff --git a/media/test/line_change_detection/use_p.jpg b/media/test/line_change_detection/use_p.jpg new file mode 100644 index 0000000..0f79a36 Binary files /dev/null and b/media/test/line_change_detection/use_p.jpg differ diff --git a/media/test/line_change_detection/without_p.jpg b/media/test/line_change_detection/without_p.jpg new file mode 100644 index 0000000..d16986c Binary files /dev/null and b/media/test/line_change_detection/without_p.jpg differ diff --git a/media/test/morphology/close.jpg b/media/test/morphology/close.jpg new file mode 100644 index 0000000..3016c3f Binary files /dev/null and b/media/test/morphology/close.jpg differ diff --git a/media/test/morphology/dilate.jpg b/media/test/morphology/dilate.jpg new file mode 100644 index 0000000..4a657c3 Binary files /dev/null and b/media/test/morphology/dilate.jpg differ diff --git a/media/test/morphology/erode.jpg b/media/test/morphology/erode.jpg new file mode 100644 index 0000000..2987811 Binary files /dev/null and b/media/test/morphology/erode.jpg differ diff --git a/media/test/morphology/image.png b/media/test/morphology/image.png new file mode 100644 index 0000000..2dc4c0b Binary files /dev/null and b/media/test/morphology/image.png differ diff --git a/media/test/morphology/open.jpg b/media/test/morphology/open.jpg new file mode 100644 index 0000000..e93f8ca Binary files /dev/null and b/media/test/morphology/open.jpg differ diff --git a/media/test/noise/gauss.jpg b/media/test/noise/gauss.jpg new file mode 100644 index 0000000..502a6b9 Binary files /dev/null and b/media/test/noise/gauss.jpg differ diff --git a/media/test/noise/image.png b/media/test/noise/image.png new file mode 100644 index 0000000..768f0b9 Binary files /dev/null and b/media/test/noise/image.png differ diff --git a/media/test/noise/salt_and_pepper.jpg b/media/test/noise/salt_and_pepper.jpg new file mode 100644 index 0000000..052d802 Binary files /dev/null and b/media/test/noise/salt_and_pepper.jpg differ diff --git a/media/test/opencv_basic_draw/draw.jpg b/media/test/opencv_basic_draw/draw.jpg new file mode 100644 index 0000000..5c3eb98 Binary files /dev/null and b/media/test/opencv_basic_draw/draw.jpg differ diff --git a/media/test/operation/and.jpg b/media/test/operation/and.jpg new file mode 100644 index 0000000..ff62fc3 Binary files /dev/null and b/media/test/operation/and.jpg differ diff --git a/media/test/operation/image1.jpg b/media/test/operation/image1.jpg new file mode 100644 index 0000000..ece43f5 Binary files /dev/null and b/media/test/operation/image1.jpg differ diff --git a/media/test/operation/image2.jpg b/media/test/operation/image2.jpg new file mode 100644 index 0000000..f3afb45 Binary files /dev/null and b/media/test/operation/image2.jpg differ diff --git a/media/test/resize_rotate_translation/lane.jpg b/media/test/resize_rotate_translation/lane.jpg new file mode 100644 index 0000000..a72501a Binary files /dev/null and b/media/test/resize_rotate_translation/lane.jpg differ diff --git a/media/test/resize_rotate_translation/resize.jpg b/media/test/resize_rotate_translation/resize.jpg new file mode 100644 index 0000000..d03539e Binary files /dev/null and b/media/test/resize_rotate_translation/resize.jpg differ diff --git a/media/test/resize_rotate_translation/rotate.jpg b/media/test/resize_rotate_translation/rotate.jpg new file mode 100644 index 0000000..0cc3a3b Binary files /dev/null and b/media/test/resize_rotate_translation/rotate.jpg differ diff --git a/media/test/resize_rotate_translation/translation.jpg b/media/test/resize_rotate_translation/translation.jpg new file mode 100644 index 0000000..6216001 Binary files /dev/null and b/media/test/resize_rotate_translation/translation.jpg differ diff --git a/media/test/rgb_color_space/b-dog.jpg b/media/test/rgb_color_space/b-dog.jpg new file mode 100644 index 0000000..56887e3 Binary files /dev/null and b/media/test/rgb_color_space/b-dog.jpg differ diff --git a/media/test/rgb_color_space/dog.jpg b/media/test/rgb_color_space/dog.jpg new file mode 100644 index 0000000..21ae4a1 Binary files /dev/null and b/media/test/rgb_color_space/dog.jpg differ diff --git a/media/test/sharp/frequency_domain/ideal.jpg b/media/test/sharp/frequency_domain/ideal.jpg new file mode 100644 index 0000000..db33ef5 Binary files /dev/null and b/media/test/sharp/frequency_domain/ideal.jpg differ diff --git a/media/test/sharp/spatial_domain/Sobel.jpg b/media/test/sharp/spatial_domain/Sobel.jpg new file mode 100644 index 0000000..11ad439 Binary files /dev/null and b/media/test/sharp/spatial_domain/Sobel.jpg differ diff --git a/media/test/sharp/zero.bmp b/media/test/sharp/zero.bmp new file mode 100644 index 0000000..2d24cca Binary files /dev/null and b/media/test/sharp/zero.bmp differ diff --git a/media/test/smooth/frequency_domain/gauss.jpg b/media/test/smooth/frequency_domain/gauss.jpg new file mode 100644 index 0000000..c794e70 Binary files /dev/null and b/media/test/smooth/frequency_domain/gauss.jpg differ diff --git a/media/test/smooth/spatial_domain/average.jpg b/media/test/smooth/spatial_domain/average.jpg new file mode 100644 index 0000000..3970fbe Binary files /dev/null and b/media/test/smooth/spatial_domain/average.jpg differ diff --git a/media/test/smooth/zero.bmp b/media/test/smooth/zero.bmp new file mode 100644 index 0000000..06d46a4 Binary files /dev/null and b/media/test/smooth/zero.bmp differ diff --git a/media/test/wavelet/diagonal_high.jpg b/media/test/wavelet/diagonal_high.jpg new file mode 100644 index 0000000..66e0f97 Binary files /dev/null and b/media/test/wavelet/diagonal_high.jpg differ diff --git a/media/test/wavelet/horizontal_high.jpg b/media/test/wavelet/horizontal_high.jpg new file mode 100644 index 0000000..eb6c37a Binary files /dev/null and b/media/test/wavelet/horizontal_high.jpg differ diff --git a/media/test/wavelet/image.jpg b/media/test/wavelet/image.jpg new file mode 100644 index 0000000..37d6c0e Binary files /dev/null and b/media/test/wavelet/image.jpg differ diff --git a/media/test/wavelet/low.jpg b/media/test/wavelet/low.jpg new file mode 100644 index 0000000..67cfa4d Binary files /dev/null and b/media/test/wavelet/low.jpg differ diff --git a/media/test/wavelet/refactor.jpg b/media/test/wavelet/refactor.jpg new file mode 100644 index 0000000..e12ce21 Binary files /dev/null and b/media/test/wavelet/refactor.jpg differ diff --git a/media/test/wavelet/vertical_high.jpg b/media/test/wavelet/vertical_high.jpg new file mode 100644 index 0000000..a6cbe32 Binary files /dev/null and b/media/test/wavelet/vertical_high.jpg differ