【问题标题】:Issue with T-API(with OpenCL) python3T-API(使用 OpenCL)python3 的问题
【发布时间】:2019-04-26 07:23:15
【问题描述】:

我正在试验 opencv python 的 T-Api。目前我正在尝试将普通的 RGB 图像转换为灰度并在启用 T-Api 的情况下保存它。这是sn-p

import cv2
import dlib
im =  cv2.UMat(cv2.imread('input.png',1))
print(im)
imMat =  cv2.UMat(im)
gray =  cv2.cvtColor(imMat,cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray.png',gray)

输出如下以及错误

<cv2.UMat object at 0x7fd1e400e378>
<cv2.UMat object at 0x7fc97d0ec390>


Segmentation fault (core dumped)

在上述操作之前我已经尝试过了

cv2.ocl.setUseOpenCL(True)
print(cv2.ocl.haveOpenCL())

上面的打印语句输出错误,我在想我需要通过支持 OpenCL 的 opencv 编译才能使 cv2.UMat 工作,但我能够打印出两个 im 输出。我从这个example 复制了代码,它似乎工作正常

import cv2

img = cv2.UMat(cv2.imread("image.jpg", cv2.IMREAD_COLOR))
imgUMat = cv2.UMat(img)
gray = cv2.cvtColor(imgUMat, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (7, 7), 1.5)
gray = cv2.Canny(gray, 0, 50)

cv2.imshow("edges", gray)
cv2.waitKey();

我到底哪里错了?

【问题讨论】:

    标签: python-3.x opencv3.0


    【解决方案1】:

    如果您有 AMD 的 FFT 和 BLAS 库,您应该使用标志 WITH_OPENCL=ONWITH_OPENCLAMDFFT=ONWITH_OPENCLAMDBLAS=ON 使用 CMake 进行重建。 source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 2020-06-27
      相关资源
      最近更新 更多