简而言之,我想知道是否可以通过Mat成员"uchar*data"直接访问CV_32F Mat的像素值.
如果Mat是CV_8U,我可以毫无问题地做到这一点,例如:
// a matrix 5 columns and 6 rows, values in [0,255], all elements initialised at 12
cv:Mat A;
A.create(5,6, CV_8UC1);
A = cv::Scalar(12);
//here I successfully access to pixel [4,5]
uchar *p = A.data;
int value = (uchar) p[4*A.step + 5];
Run Code Online (Sandbox Code Playgroud)
问题是当我尝试使用以下矩阵执行相同的操作时,
// a matrix 5 columns, 6 rows, values in [0.0, 1.0], all elements initialised at 1.2
cv::Mat B;
B.create(5,6, CV_32FC1);
B = cv::Scalar(1.2);
//this clearly does not work, no syntax error but erroneous value reported! …Run Code Online (Sandbox Code Playgroud) 在Ubuntu MATE 16.04我试图使用GPU在这里运行深度学习的python示例:
我确实运行了示例代码,
THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python check1.py
Run Code Online (Sandbox Code Playgroud)
但它似乎是使用CPU而不是GPU.这是终端输出的最后一部分:
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu0 is not available (error: cuda unavailable)
...
Used the cpu
Run Code Online (Sandbox Code Playgroud)
我也尝试运行此代码:
THEANO_FLAGS=device=cuda0 python check1.py
Run Code Online (Sandbox Code Playgroud)
但输出是:
ERROR (theano.sandbox.gpuarray): pygpu was configured but could not be imported
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/theano/sandbox/gpuarray/__init__.py", line 20, in <module>
import pygpu
ImportError: No module named pygpu
...
used cpu
Run Code Online (Sandbox Code Playgroud)
我从apt安装了cuda工具包.这里有(希望)有用的数据:
python --version
Python 2.7.12
g++ -v
gcc version 5.4.0
nvcc --version
Cuda compilation tools, release 7.5, …Run Code Online (Sandbox Code Playgroud) 在C ++中,如何从对象cv::Mat或对象中获取颜色格式(例如RGB或BGR)cv::IplImage?