Hmmm. Must be something different causing the problem.

When I check:
```jl
using PyCall
PyObject(nothing)
```
I get the expected `PyObject None` back.

On Friday, June 17, 2016 at 1:06:49 PM UTC-7, Stefan Karpinski wrote:
>
> Converting between Python/None <=> Julia/nothing seems like something that 
> PyCall should maybe do since they are pretty much equivalent. Maybe open an 
> issue here: https://github.com/stevengj/PyCall.jl?
>
> On Fri, Jun 17, 2016 at 3:58 PM, Gabriel Gellner <[email protected] 
> <javascript:>> wrote:
>
>> Have you tried passing `:none` in the argument list. I find that PyCall 
>> does the correct conversion on the symbol.
>>
>>
>> On Friday, June 17, 2016 at 11:42:32 AM UTC-7, I Ce wrote:
>>>
>>> I am using PyCalland @pyimport cv2 to implement an OpenCV 
>>> feature-matching program in Julia.
>>>
>>>
>>> I have an example of the code I want to use in *Python* (see *Brute-Force 
>>> Matching with SIFT Descriptors and Ratio Test* in this link: 
>>> http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html
>>>  for 
>>> the full Python code.)
>>>
>>>
>>> Everything up to the point of drawMatchesKnn() works fine, but I have 
>>> issues with the outImg argument when converting to Julia.
>>>
>>>
>>> Documentation for drawMatchesKnn() is pasted below: 
>>> (and can also be found here: 
>>>
>>> http://docs.opencv.org/3.0-beta/modules/features2d/doc/drawing_function_of_keypoints_and_matches.html#drawmatches
>>>
>>>
>>> Python: cv2.drawMatchesKnn(img1, keypoints1, img2, keypoints2, 
>>> matches1to2[, outImg[, matchColor[, singlePointColor[, matchesMask[, 
>>> flags]]]]]) → outImg
>>>
>>> Parameter description:
>>>
>>>    - img1 – First source image.
>>>    - keypoints1 – Keypoints from the first source image.
>>>    - img2 – Second source image.
>>>    - keypoints2 – Keypoints from the second source image.
>>>    - matches1to2 – Matches from the first image to the second one, 
>>>    which means that keypoints1[i] has a corresponding point in 
>>>    keypoints2[matches[i]] .
>>>    - outImg – Output image. Its content depends on the flags value 
>>>    defining what is drawn in the output image. See possible flags bit 
>>> values 
>>>    below.
>>>    - matchColor – Color of matches (lines and connected keypoints). If 
>>>    matchColor==Scalar::all(-1) , the color is generated randomly.
>>>    - singlePointColor – Color of single keypoints (circles), which 
>>>    means that keypoints do not have the matches. If 
>>>    singlePointColor==Scalar::all(-1) , the color is generated randomly.
>>>    - matchesMask – Mask determining which matches are drawn. If the 
>>>    mask is empty, all matches are drawn.
>>>    - flags – Flags setting drawing features. Possible flags bit values 
>>>    are defined by DrawMatchesFlags.
>>>
>>> As you can see from the sample program, the drawMatchesKnn() line in 
>>> Python would look like this:
>>> img3 = cv2.drawMatchesKnn(train,kp1,query,kp2,good,None,flags=2) (the 
>>> key argument is argument 6, specified as "None")
>>>
>>>
>>> I'm having problems because I don't really know what an equivalent, 
>>> working example in Julia would be.
>>>
>>>
>>>
>>> I tried this:
>>> img3 = cv2.drawMatchesKnn(train,kp1,query,kp2,good)
>>>
>>> And got this error: (so arg6 is required)
>>>
>>> LoadError: PyError (:PyObject_Call) <type 'exceptions.TypeError'>
>>> TypeError("Required argument 'outImg' (pos 6) not found",)
>>>
>>>
>>>
>>> This: (passing the scalar value 0, which worked for the method 
>>> drawKeyPoints() in another program)
>>> img3 = cv2.drawMatchesKnn(train,kp1,query,kp2,good,0,flags=2)
>>>
>>> and got this error:
>>>
>>> LoadError: PyError (:PyObject_Call) <type 'exceptions.SystemError'>
>>> SystemError('NULL result without error in PyObject_Call',)
>>>
>>>
>>>
>>> and this:
>>> img3 = cv2.drawMatchesKnn(train,kp1,query,kp2,good,nothing,flags=2)
>>>
>>> and got this error:
>>>
>>> LoadError: PyError (:PyObject_Call) <type 'exceptions.SystemError'>
>>> SystemError('NULL result without error in PyObject_Call',)
>>>
>>>
>>> Seems tricky to me because None in Python and nothing in Julia do not 
>>> appear to behave the same way.
>>>
>>>
>>> Anything else I could try? What could the problem be, and how can I fix 
>>> it?
>>>
>>>
>>> Thanks for reading!
>>> Any help is much appreciated.
>>>
>>
>

Reply via email to