基本上,我正在尝试编写程序,以在终端中使用ASCII字母重新创建JPG图像,但是我被卡在函数上,该函数应返回结构的2D向量。每个结构都有代表像素RGB值的三个整数。当我尝试打印任何值时,会有一些奇怪的退出代码。代码还不多,所以也许有人可以看看...
退出代码:“进程完成,退出代码为139(被信号11:SIGSEGV中断)”
struct REDGREENBLUE
{
int r, g, b;
};
std::vector<std::vector<REDGREENBLUE>> getPixelColor(Magick::Image img, int w, int h)
{
std::vector<std::vector<REDGREENBLUE>> pixels;
for(int i = 0; i < w; i++)
for (int j = 0; j < h; j++)
{
Magick::ColorRGB color(img.pixelColor(j, i));
pixels[w][h].r = color.red() * 255;
pixels[w][h].g = color.green() * 255;
pixels[w][h].b = color.blue() * 255;
}
return pixels;
}
int main(int argc, char ** argv)
{
Magick::InitializeMagick(*argv);
Magick::Image image("/home/damian/Pictures/ascii-pineapple.jpg");
int width = image.baseColumns();
int height = image.baseRows();
std::vector<std::vector<REDGREENBLUE>> test = getPixelColor(image, width, height);
for(int w = 0; w < width; w++)
for(int h = 0; h < height; h++)
{
std::cout << test[w][h].r << std::endl;
}
return 0;
}