From c320aab6c384ea161eaf9d77cd11a5ec77639659 Mon Sep 17 00:00:00 2001 From: ton Date: Mon, 3 Apr 2023 07:53:22 +0700 Subject: [PATCH] read URL to julia img directly --- src/interface.jl | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/interface.jl b/src/interface.jl index c63ce028..2f566749 100644 --- a/src/interface.jl +++ b/src/interface.jl @@ -29,18 +29,26 @@ end get image from url, image in PythonCall python-obj numpy array """ function url_to_image(url) - np_rgb_img = py_io.imread(url) - cv2_bgr_img = py_cv2.cvtColor(np_rgb_img, py_cv2.COLOR_RGB2BGR) + # read image directly from url + julia_rgb_img = FileIO.load(HTTP.URI(url)) + np_rgb_img, np_bgr_img = juliaImg2npImg(julia_rgb_img) + cv2_bgr_img = np_bgr_img # opencv use BGR image - # convert cv2 img to julia img - julia_array_img = pyconvert(Array, cv2_bgr_img) - julia_rgb_img = np2juliaImage(julia_array_img) - - # read image directly from url not converting from cv2 image - julia_native_rgb_img = FileIO.load(HTTP.URI(url)) - - return julia_native_rgb_img, julia_rgb_img, cv2_bgr_img + return julia_rgb_img, np_rgb_img, cv2_bgr_img end +# function url_to_image(url) # OLD version use python to read url +# np_rgb_img = py_io.imread(url) +# cv2_bgr_img = py_cv2.cvtColor(np_rgb_img, py_cv2.COLOR_RGB2BGR) + +# # convert cv2 img to julia img +# julia_array_img = pyconvert(Array, cv2_bgr_img) +# julia_rgb_img = np2juliaImage(julia_array_img) + +# # read image directly from url not converting from cv2 image +# julia_native_rgb_img = FileIO.load(HTTP.URI(url)) + +# return julia_native_rgb_img, julia_rgb_img, cv2_bgr_img +# end """ @@ -90,18 +98,17 @@ function juliaImg2npReadyImg(img_julia_RGB::Matrix{RGB{N0f8}}) npReady_rgb_img[:,:,1] # red ]; - # both still are Julia array + # return is Julia array return npReady_rgb_img, npReady_bgr_img end function juliaImg2npImg(img_julia_RGB::Matrix{RGB{N0f8}}) - npReady_rgb_Img, npReady_bgr_Img = juliaImg2npReadyImg(img_julia_RGB) + npReady_rgb_Img, npReady_bgr_img = juliaImg2npReadyImg(img_julia_RGB) np_rgb_img = py_np.array(npReady_rgb_Img) - np_bgr_img = py_np.array(npReady_bgr_Img) + np_bgr_img = py_np.array(npReady_bgr_img) - # both are PythonCall wrapped numpy array - return np_rgb_img, np_bgr_img # opencv use np_bgr_img + return np_rgb_img, np_bgr_img # PythonCall wrapped numpy array end