OpenCV读取图片每个像素RGB通道值
/*读取图片并显示每个像素点的RGB值*/// 读取一幅图片每个像素处的RGB三个通道的值#include <iostream>#include <fstream>#include <string>#include <windows.h>#include <gdiplus.h>#pragma comment(lib, "gdiplus.lib")using namespace std;using namespace Gdiplus;int main(){GdiplusStartupInput gdiplusstartupinput;ULONG_PTR gdiplustoken;GdiplusStartup(&gdiplustoken, &gdiplusstartupinput, NULL);wstring infilename(L"0.jpg");string outfilename("color.txt");// txtofstream fout(outfilename.c_str());// txt//ofstream fout;// csv、xls//fout.open("0.csv", ios::out | ios::trunc); // csv//fout.open("0.xls", ios::out | ios::trunc); // xlsBitmap* bmp = new Bitmap(infilename.c_str());UINT height = bmp->GetHeight();UINT width = bmp->GetWidth();cout << "width " << width << ", height " << height << endl;Color color;fout << "width " << width << ", height " << height << "\nstructure(X,Y,R,G,B)" << endl;// txt//fout << "width " << width << ", height " << height << endl;// csv//fout << "X" << "," << "Y" << "," << "R" << "," << "G" << "," << "B" << endl;// csv//fout << "width " << width << "\t height " << height << endl;// xls//fout << "X" << "\t" << "Y" << "\t" << "R" << "\t" << "G" << "\t" << "B" << endl;// xlsfor (int y = 0; y < height; y++)for (int x = 0; x < width; x++){bmp->GetPixel(x, y, &color);fout << x << ";" << y << ";"<< (int)color.GetRed() << ";"<< (int)color.GetGreen() << ";"<< (int)color.GetBlue() << endl;// txt//fout << x << "," << y << "," << (int)color.GetRed() << "," << (int)color.GetGreen() << "," << (int)color.GetBlue() << endl;// csv//fout << x << "\t" << y << "\t" << (int)color.GetRed() << "\t" << (int)color.GetGreen() << "\t" << (int)color.GetBlue() << endl;// xls}fout.close();delete bmp;GdiplusShutdown(gdiplustoken);return 0;}