600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > OpenCV读取图片每个像素RGB通道值

OpenCV读取图片每个像素RGB通道值

时间:2021-03-13 16:12:38

相关推荐

OpenCV读取图片每个像素RGB通道值

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;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。