Fix DNN samples for compatibility with Python 3.

Add PyInt_Check in pyopencv_dnn.hpp.
This commit is contained in:
catree 2017-10-13 19:38:42 +02:00
parent 1ba29cc95d
commit 22dece8146
4 changed files with 12 additions and 8 deletions

View 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));

View 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)

View 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]

View 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