Ask Your Question

roosemberth's profile - activity

2020-10-28 13:55:33 -0600 received badge  Popular Question (source)
2017-05-31 08:42:47 -0600 received badge  Famous Question (source)
2016-08-23 09:45:29 -0600 received badge  Notable Question (source)
2016-01-27 09:34:45 -0600 received badge  Popular Question (source)
2014-11-12 01:03:29 -0600 received badge  Scholar (source)
2014-11-12 01:02:29 -0600 received badge  Supporter (source)
2014-11-09 05:29:14 -0600 answered a question Use allocated buffer for Mat Data Pointer

So, I figured out that I could Initialize my Mat as

cv::Mat MatrixName(MatrixRows, MatrixCols, MatrixType/*(ie. CV_8UC4)*/, \
    NULL/*(This is the Data Pointer)*/, MatrixRowStep);

And then I could Assign the Pointer to the Data Member as

MatrixName.data = MyDataBuffer;

Which is, in my application, Mapped to the OpenCL GPU Memory-Mapped Buffer

Then I was Able to Normally Use Functions as cv::imshow, etc...

Best Regards!

2014-11-04 05:12:05 -0600 commented answer Guarantee continuous Mat Image

Oh, I missed that silly error... I'm so sorry, Thank you!

2014-11-02 03:46:27 -0600 commented answer Guarantee continuous Mat Image

I Updated the post with the information you requested

2014-11-02 03:45:42 -0600 received badge  Editor (source)
2014-10-28 14:02:41 -0600 asked a question Guarantee continuous Mat Image

Hello, I would like to ensure a continuous frame for a mat image. I tryed the solution described Here, but I get compilation errors of no candidate for operator= on Mat (in header is defined for Mat&), so there's my question, how can I allocate the continuous frame?

Best Regards!

Here is the error I get:

Building file: ../src/Sandbox.cpp
Invoking: GCC C++ Compiler
g++ -I/usr/local/include/opencv2 -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/Sandbox.d" -MT"src/Sandbox.d" -o "src/Sandbox.o" "../src/Sandbox.cpp"
../src/Sandbox.cpp: In function ‘int main(int, char**)’:
../src/Sandbox.cpp:196:13: error: ‘class cv::Mat’ has no member named ‘isContinous’
   if(!Frame.isContinous()) Frame=Frame.clone;
                ^
../src/Sandbox.cpp:196:33: error: no match for ‘operator=’ (operand types are ‘cv::Mat’ and ‘<unresolved overloaded function type>’)
   if(!Frame.isContinous()) Frame=Frame.clone;
                             ^
../src/Sandbox.cpp:196:33: note: candidates are:
In file included from /usr/local/include/opencv2/core/core.hpp:4856:0,
                 from /usr/local/include/opencv2/opencv.hpp:47,
                 from ../src/Sandbox.cpp:1:
/usr/local/include/opencv2/core/mat.hpp:281:13: note: cv::Mat& cv::Mat::operator=(const cv::Mat&)
 inline Mat& Mat::operator = (const Mat& m)
             ^
/usr/local/include/opencv2/core/mat.hpp:281:13: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const cv::Mat&’
In file included from /usr/local/include/opencv2/core/core.hpp:4856:0,
                 from /usr/local/include/opencv2/opencv.hpp:47,
                 from ../src/Sandbox.cpp:1:
/usr/local/include/opencv2/core/mat.hpp:1417:13: note: cv::Mat& cv::Mat::operator=(const cv::MatExpr&)
 inline Mat& Mat::operator = (const MatExpr& e)
         ^
/usr/local/include/opencv2/core/mat.hpp:1417:13: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const cv::MatExpr&’
In file included from /usr/local/include/opencv2/opencv.hpp:47:0,
             from ../src/Sandbox.cpp:1:
/usr/local/include/opencv2/core/core.hpp:1775:10: note: cv::Mat& cv::Mat::operator=(const Scalar&)
 Mat& operator = (const Scalar& s);
      ^
/usr/local/include/opencv2/core/core.hpp:1775:10: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const Scalar& {aka const     cv::Scalar_<double>&}’
make: *** [src/Sandbox.o] Error 1

The code I'm using is

Mat Frame
VideoCapture VideoStream;
VideoStream.read(Frame);                            // Get Frame
if(!Frame.isContinous()) Frame=Frame.clone;
2014-10-21 14:42:23 -0600 asked a question Use allocated buffer for Mat Data Pointer

Hello,

I'm Passing frames from 2 cameras to 2 Mat types via (Videocapture.read()). The problem is that I have to copy in order to enqueue them in an OpenCL Buffer. As I can directly map (OpenCL)Device Memory into Host Memory (thus making it as a transparent buffer), is there any way I can Use my allocated buffer to fill the mat container with my frame?

Best Regards!