如何通过c++获取图像的所有像素数据(RGB)
How to get all the pixel data (RGB) of an image through c++
对于 JPG 或 PNG 文件,我需要二维数组形式的像素数据。
执行此操作的程序是什么,或者哪些图书馆可以执行该任务?
试试 openCV 库。这是 site,您可以下载并安装它。
这是执行您想要的操作的代码:
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("C:/.../image1.jpg");
Vec3b buf;
for(int i = 0; i < image.rows; i++)
for(int j = 0; j < image.cols; j++)
{
buf = image.at<Vec3b>(i,j);
array_B[i][j] = buf[0];
array_G[i][j] = buf[1];
array_R[i][j] = buf[2];
}
//imwrite("C:/.../image2.jpg",image3);
imshow("Image",image);
waitKey(0);
}
对于 JPG 或 PNG 文件,我需要二维数组形式的像素数据。
执行此操作的程序是什么,或者哪些图书馆可以执行该任务?
试试 openCV 库。这是 site,您可以下载并安装它。 这是执行您想要的操作的代码:
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("C:/.../image1.jpg");
Vec3b buf;
for(int i = 0; i < image.rows; i++)
for(int j = 0; j < image.cols; j++)
{
buf = image.at<Vec3b>(i,j);
array_B[i][j] = buf[0];
array_G[i][j] = buf[1];
array_R[i][j] = buf[2];
}
//imwrite("C:/.../image2.jpg",image3);
imshow("Image",image);
waitKey(0);
}