我有一个形状(x,y)坐标的二维数组。我的目标是创建这些2D点的图像。
我怎么能实现这个目标?
谢谢你,Alex。
答案 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);