richik jaiswal
richik jaiswal

Reputation: 2102

Cannot import cv on Opencv2

I am using a Windows 10 machine and have installed Python, numpy and OpenCV from the official link using pre built binaries. I can successfully import numpy and cv2 but get an error when I try to import cv.

import cv2

import numpy as np
import sys
import cv

def diceroll():
    rng = cv.RNG(np.random.randint(1,10000))
    print 'The outcome of the roll is:'
    print int(6*cv.RandReal(rng) + 1)
    return 

diceroll()

ImportError: No module named cv

P.S: This is not a possible duplicate of this question. The user in the question involved is getting a dll file error whereas I am stuck with an import error for cv.

Upvotes: 5

Views: 23729

Answers (2)

richik jaiswal
richik jaiswal

Reputation: 2102

After inquiring on the OpenCV community, I learnt that the old cv or cv2.cv api was removed entirely from OpenCV3

One cannot use the RNG function from cv through opencv3. You can instead use numpy.random for the same functionality.

Reference: my question on Opencv community

Upvotes: 4

Jaime
Jaime

Reputation: 67507

It is somewhere in there, just need to search for it. Try running something like the following on your system:

from types import ModuleType

def search_submodules(module, identifier):
    assert isinstance(module, ModuleType)
    ret = None
    for attr in dir(module):
        if attr == identifier:
            ret = '.'.join((module.__name__, attr))
            break
        else:
            submodule = getattr(module, attr)
            if isinstance(submodule, ModuleType):
                ret = search_submodules(submodule, identifier)
    return ret

if __name__ == '__main__':
    import cv2
    print cv2.__version__
    print search_submodules(cv2, 'RNG')

On my system, this prints:

2.4.11
cv2.cv.RNG

Upvotes: 2

Related Questions