sift = cv2.xfeatures2d.SIFT_create() not working even though have contrib installed

I had the same problem. It seems that SIRF and SURF are no longer available in opencv > 3.4.2.16. I chose an older opencv-python and opencv-contrib-python versions and solved this problem. Here is the history version about opencv-python, and I use the following code : pip install opencv-python==3.4.2.16 pip install opencv-contrib-python==3.4.2.16 Edit For Anaconda User … Read more

installing cPickle with python 3.5

cPickle comes with the standard library… in python 2.x. You are on python 3.x, so if you want cPickle, you can do this: >>> import _pickle as cPickle However, in 3.x, it’s easier just to use pickle. No need to install anything. If something requires cPickle in python 3.x, then that’s probably a bug.

typing.Any vs object?

Yes, there is a difference. Although in Python 3, all objects are instances of object, including object itself, only Any documents that the return value should be disregarded by the typechecker. The Any type docstring states that object is a subclass of Any and vice-versa: >>> import typing >>> print(typing.Any.__doc__) Special type indicating an unconstrained … Read more

How can I periodically execute a function with asyncio?

For Python versions below 3.5: import asyncio @asyncio.coroutine def periodic(): while True: print(‘periodic’) yield from asyncio.sleep(1) def stop(): task.cancel() loop = asyncio.get_event_loop() loop.call_later(5, stop) task = loop.create_task(periodic()) try: loop.run_until_complete(task) except asyncio.CancelledError: pass For Python 3.5 and above: import asyncio async def periodic(): while True: print(‘periodic’) await asyncio.sleep(1) def stop(): task.cancel() loop = asyncio.get_event_loop() loop.call_later(5, stop) … Read more

How to disable password request for a Jupyter notebook session?

The following is very unsafe, but you can remove the password completely with: jupyter notebook –ip=’*’ –NotebookApp.token=” –NotebookApp.password=” Without –NotebookApp.password=”, when connecting from a remote computer to a local Jupyter launched simply with: jupyter notebook –ip=’*’ it still asks for a password for security reasons, since users with access can run arbitrary Python code on … Read more

Why is str.translate much faster in Python 3.5 compared to Python 3.4?

TL;DR – ISSUE 21118 The long Story Josh Rosenberg found out that the str.translate() function is very slow compared to the bytes.translate, he raised an issue, stating that: In Python 3, str.translate() is usually a performance pessimization, not optimization. Why was str.translate() slow? The main reason for str.translate() to be very slow was that the … Read more

asyncio.ensure_future vs. BaseEventLoop.create_task vs. simple coroutine?

Actual info: Starting from Python 3.7 asyncio.create_task(coro) high-level function was added for this purpose. You should use it instead other ways of creating tasks from coroutimes. However if you need to create task from arbitrary awaitable, you should use asyncio.ensure_future(obj). Old info: ensure_future vs create_task ensure_future is a method to create Task from coroutine. It … Read more

Difference between numpy dot() and Python 3.5+ matrix multiplication @

The @ operator calls the array’s __matmul__ method, not dot. This method is also present in the API as the function np.matmul. >>> a = np.random.rand(8,13,13) >>> b = np.random.rand(8,13,13) >>> np.matmul(a, b).shape (8, 13, 13) From the documentation: matmul differs from dot in two important ways. Multiplication by scalars is not allowed. Stacks of … Read more