#include <opencv2/opencv.hpp>
void testConversion()
{//double x[100][100];
//cv::Mat A(100, 100, CV_64F);
//std::memcpy(A.data, x, 100 * 100 * sizeof(double));
double (*data)[2] = new double[10][2]{
{2.5, 2.4},
{0.5, 0.7},
{2.2, 2.9},
{1.9, 2.2},
{3.1, 3.0},
{2.3, 2.7},
{2, 1.6},
{1, 1.1},
{1.5, 1.6},
{1.1, 0.9}
};
cv::Mat mData(10, 2, CV_64F);
//cv::Mat mData(10, 2, CV_16UC1, &data);//这个结果是不对的
memcpy(mData.data, data, 10 * 2 * sizeof(double));
cout << "mData\n" << mData << endl;
return;
}
int main()
{
testConversion();
// First row contains 3 white pixels
// Second row contains 3 black pixels
//double temp[2][3] = { {255.0, 255, 255}, {0, 0, 0} };
//cv::Mat mat = cv::Mat(2, 3, CV_64F);
// The first element of temp decays to int* data.
// It means that mat.data tracks temp.
//mat[0][0]=0.55
// Change the upper left pixel to black from temp,
// the change affects mat.
//temp[0][0] = uchar(0);
//cv::namedWindow("title", cv::WINDOW_NORMAL);
//cv::imshow("title", mat);
//cv::waitKey();
return 0;
}
如何将double数组转为opencv mat
最新推荐文章于 2024-07-21 17:09:07 发布