小编tho*_*mas的帖子

OpenCV Python - 没有名为cv2的模块(再次)

我知道这个问题已经在这里问了好几次,但是因为到目前为止还没有答案帮助我,所以我再次在这里发帖.

我做了什么:

我克隆了存储库https://github.com/Itseez/opencv,创建并更改为构建目录并使用以下命令编译OpenCV.

cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D BUILD_opencv_python2=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON -D WITH_CUDA=ON -D WITH_CUBLAS=ON -D CUDA_ARCH_BIN="2.0 3.0 3.5" ..
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

一切都编好了.后来我加入/usr/local/lib/etc/ld.so.conf.d/opencv.conf和执行sudo ldconfig.最后,我补充道

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
Run Code Online (Sandbox Code Playgroud)

到我当地的bashrc.一切正常,我也可以执行cpp示例,但是一旦我尝试python示例或尝试在python中使用OpenCV,我得到:

ImportError:没有名为cv2的模块

我根据其他帖子尝试的事情:

  1. 手动复制cv2.so/usr/local/lib/python2.7/dist-packages:没有用,因为我无法在任何地方找到cv2.so.

  2. 缺少numpy或numpy的多个版本:这里没问题,因为我只有一个版本的numpy.

额外:

我也尝试了与主页上最新来源相同的步骤:相同的结果.

我发现有几个资源说BUILD_NEW_PYTHON_SUPPORT现在没有正确的标志BUILD_PYTHON_SUPPORT,就像在早期版本中那样.由于两者都不适合我,我用过BUILD_opencv_python2.那是对的吗?

那么,这可能是什么问题?我的意思是,除了我的机器上没有cv2.so的事实.顺便说一句,我使用的是Ubuntu 14.04.

提前致谢.

python opencv python-2.7 opencv3.0

6
推荐指数
1
解决办法
1万
查看次数

OpenCV距离变换中的像素索引

我想使用函数distanceTransform()来查找非零像素到零像素的最小距离,以及最近零像素的位置.我调用函数的第二个版本,并将labelType标志设置为DIST_LABEL_PIXEL.一切正常,我得到最接近零像素的距离和指数.

现在我想将索引转换回像素位置,我认为索引将像idx =(row*cols + col)或类似的东西,但我必须发现OpenCV只计算零像素并使用此计数作为指数.因此,如果我得到123作为最近像素的索引,这意味着第123个零像素是最接近的.

  1. OpenCV如何计算它们?可能是以行方式?

  2. 有没有一种有效的方法将指数映射回位置?显然,如果我知道OpenCV如何计算它们,我可以重新计算它们并跟踪计数和位置,但这看起来很愚蠢而且效率不高.

  3. 是否有充分的理由使用他们使用的索引?我的意思是,使用绝对索引有什么优势吗?

提前致谢.

编辑:

如果你想看看我的意思,你可以运行:

Mat mask = Mat::ones(100, 100, CV_8U);
mask.at<uchar>(50, 50) = 0;

Mat dist, labels;
distanceTransform(mask, dist, labels, CV_DIST_L2, CV_DIST_MASK_PRECISE, DIST_LABEL_PIXEL);

cout << labels.at<int>(0,0) << endl;
Run Code Online (Sandbox Code Playgroud)

您将看到所有标签都是1,因为只有一个零像素,但我应该如何找到该信息的位置(50,50)?

c++ opencv image-processing

5
推荐指数
1
解决办法
1869
查看次数

修复深度图,仍然是黑色图像边框

我正在尝试使用此处描述的方法修复深度图缺失的深度值。总结一下该方法:

  1. 将深度图缩小到原始大小的 20%
  2. 修复缩小图像中的所有黑色(未知)像素
  3. 放大至原始尺寸
  4. 将原始图像中的所有黑色像素替换为放大图像中的相应值

超级简单,一切都很好。可以在此处找到显示结果的视频。

但是,我想知道为什么左侧和顶部图像边框仍然是黑色,尽管它们应该被修复(可以在视频中看到)。我的第一个想法是,这可能与边界插值(图像边界外的黑色像素)有关,但我预计这也会发生在其他图像边界上。我的第二个想法是,这是所使用的修复方法(Alexandru Telea 的方法)所特有的,但将其更改为基于纳维-斯托克斯的方法并没有改变结果。

有人可以向我解释为什么会发生这种情况以及如何告诉 OpenCV 修复这些区域(如果可能的话)吗?

提前致谢。

opencv

1
推荐指数
1
解决办法
3038
查看次数

标签 统计

opencv ×3

c++ ×1

image-processing ×1

opencv3.0 ×1

python ×1

python-2.7 ×1