Fix DNN samples for compatibility with Python 3.
authorcatree <catree.catreus@outlook.com>
Fri, 13 Oct 2017 17:38:42 +0000 (19:38 +0200)
committercatree <catree.catreus@outlook.com>
Sun, 15 Oct 2017 18:24:56 +0000 (20:24 +0200)
Add PyInt_Check in pyopencv_dnn.hpp.

modules/dnn/misc/python/pyopencv_dnn.hpp
samples/dnn/colorization.py
samples/dnn/mobilenet_ssd_python.py
samples/dnn/resnet_ssd_face_python.py

index 312e5fc..6989047 100644 (file)
@@ -16,6 +16,11 @@ bool pyopencv_to(PyObject *o, dnn::DictValue &dv, const char *name)
         dv = dnn::DictValue((int64)PyLong_AsLongLong(o));
         return true;
     }
+    else if (PyInt_Check(o))
+    {
+        dv = dnn::DictValue((int64)PyInt_AS_LONG(o));
+        return true;
+    }
     else if (PyFloat_Check(o))
     {
         dv = dnn::DictValue(PyFloat_AS_DOUBLE(o));
index 3f5ff3b..5cdbfd6 100644 (file)
@@ -1,4 +1,6 @@
-# Script is based on https://github.com/richzhang/colorization/colorize.py
+# Script is based on https://github.com/richzhang/colorization/blob/master/colorize.py
+# To download the caffemodel and the prototxt, see: https://github.com/richzhang/colorization/tree/master/models
+# To download pts_in_hull.npy, see: https://github.com/richzhang/colorization/blob/master/resources/pts_in_hull.npy
 import numpy as np
 import argparse
 import cv2 as cv
@@ -27,8 +29,8 @@ if __name__ == '__main__':
 
     # populate cluster centers as 1x1 convolution kernel
     pts_in_hull = pts_in_hull.transpose().reshape(2, 313, 1, 1)
-    net.getLayer(long(net.getLayerId('class8_ab'))).blobs = [pts_in_hull.astype(np.float32)]
-    net.getLayer(long(net.getLayerId('conv8_313_rh'))).blobs = [np.full([1, 313], 2.606, np.float32)]
+    net.getLayer(net.getLayerId('class8_ab')).blobs = [pts_in_hull.astype(np.float32)]
+    net.getLayer(net.getLayerId('conv8_313_rh')).blobs = [np.full([1, 313], 2.606, np.float32)]
 
     if args.input:
         cap = cv.VideoCapture(args.input)
index f031a7c..20bc054 100644 (file)
@@ -95,9 +95,9 @@ if __name__ == "__main__":
         else:
             cropSize = (cols, int(cols / WHRatio))
 
-        y1 = (rows - cropSize[1]) / 2
+        y1 = int((rows - cropSize[1]) / 2)
         y2 = y1 + cropSize[1]
-        x1 = (cols - cropSize[0]) / 2
+        x1 = int((cols - cropSize[0]) / 2)
         x2 = x1 + cropSize[0]
         frame = frame[y1:y2, x1:x2]
 
index 172ee23..922dd9b 100644 (file)
@@ -1,8 +1,5 @@
 import numpy as np
 import argparse
-import os
-import sys
-sys.path.append('/home/arrybn/build/opencv/lib')
 import cv2 as cv
 try:
     import cv2 as cv