从2D点阵列创建图像

时间:2016-05-11 09:29:25

标签: c++ image opencv visual-c++ image-processing

我有一个形状(x,y)坐标的二维数组。我的目标是创建这些2D点的图像。

我怎么能实现这个目标?

谢谢你,Alex。

3 个答案:

答案 0 :(得分:1)

Installing OpenCV 2.4.3 in Visual C++ 2010 Express

这是在Windows Visual Studio 2010和OpenCV 2.4.3上设置的。如果要在较新版本的OpenCV或Visual Studio上升级,可以找出步骤。步骤将类似。

以上链接提供了一个很好的起点。

之后你需要对Mat有一个基本的了解 http://docs.opencv.org/2.4/doc/tutorials/tutorials.html

您可以从核心模块开始:核心功能 这详细解释了Mat和其他相关操作。

你可以找到Erode和Dilate教程 http://docs.opencv.org/2.4/doc/tutorials/imgproc/erosion_dilatation/erosion_dilatation.html#morphology-1

答案 1 :(得分:1)

使用OpenCV,这大致是我做的(填写你自己的变量):

vector<Point> points {Point(x1,y1), Point(x2,y2) ... };
Mat plot(height, width, CV_8U, 255);
for (int i = 0; i < points.size(); i++) {
    plot.at<int>(points[i]) = 0;
}

在宽度x高度较大的画布上的白色背景上的指定点处绘制黑色像素。您的2D点存储为Point变量,这是一种方便的OpenCV存储2D点的方式。 (可根据需要通过point.x / point.y访问各个x / y坐标)。如果你想成为发烧友,你可以添加设置验证,其中高度&amp;画布的宽度保证大于你最远的点 - 我不会写出来的。

答案 2 :(得分:0)

如果你正在使用OpenCV,那么,

int arr_TU_DI[size_rows][size_cols] = bla bla values; // pseudocode

Mat imag = Mat(size_rows,size_cols,&arr_TU_DI);