Added def array_to_image(arr): to the darknet.py

Usage:
    import scipy.misc
    sci_image = scipy.misc.imread(image)
    im, arr = array_to_image(sci_image)
pull/844/head
AlexeyAB 7 years ago
parent 8b5344ee2d
commit 573d7e8081
  1. 15
      build/darknet/x64/darknet.py
  2. 15
      darknet.py

@ -188,6 +188,18 @@ predict_image = lib.network_predict_image
predict_image.argtypes = [c_void_p, IMAGE]
predict_image.restype = POINTER(c_float)
def array_to_image(arr):
import numpy as np
# need to return old values to avoid python freeing memory
arr = arr.transpose(2,0,1)
c = arr.shape[0]
h = arr.shape[1]
w = arr.shape[2]
arr = np.ascontiguousarray(arr.flat, dtype=np.float32) / 255.0
data = arr.ctypes.data_as(POINTER(c_float))
im = IMAGE(w,h,c,data)
return im, arr
def classify(net, meta, im):
out = predict_image(net, im)
res = []
@ -206,6 +218,9 @@ def detect(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45, debug= False):
"""
#pylint: disable= C0321
im = load_image(image, 0, 0)
#import scipy.misc
#sci_image = scipy.misc.imread(image)
#im, arr = array_to_image(sci_image) # you should comment line below: free_image(im)
if debug: print("Loaded image")
num = c_int(0)
if debug: print("Assigned num")

@ -188,6 +188,18 @@ predict_image = lib.network_predict_image
predict_image.argtypes = [c_void_p, IMAGE]
predict_image.restype = POINTER(c_float)
def array_to_image(arr):
import numpy as np
# need to return old values to avoid python freeing memory
arr = arr.transpose(2,0,1)
c = arr.shape[0]
h = arr.shape[1]
w = arr.shape[2]
arr = np.ascontiguousarray(arr.flat, dtype=np.float32) / 255.0
data = arr.ctypes.data_as(POINTER(c_float))
im = IMAGE(w,h,c,data)
return im, arr
def classify(net, meta, im):
out = predict_image(net, im)
res = []
@ -206,6 +218,9 @@ def detect(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45, debug= False):
"""
#pylint: disable= C0321
im = load_image(image, 0, 0)
#import scipy.misc
#sci_image = scipy.misc.imread(image)
#im, arr = array_to_image(sci_image) # you should comment line below: free_image(im)
if debug: print("Loaded image")
num = c_int(0)
if debug: print("Assigned num")

Loading…
Cancel
Save