在C++中讀取圖像數據通常需要使用圖像處理庫,比如OpenCV。以下是一個簡單的示例代碼,演示如何使用OpenCV讀取圖像數據:
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// 讀取圖像文件
cv::Mat image = cv::imread("image.jpg", cv::IMREAD_COLOR);
// 檢查圖像是否成功讀取
if(image.empty()) {
std::cout << "Error: Unable to read image file" << std::endl;
return -1;
}
// 顯示圖像尺寸和通道數
std::cout << "Image size: " << image.rows << "x" << image.cols << std::endl;
std::cout << "Number of channels: " << image.channels() << std::endl;
// 訪問圖像像素數據
for(int i = 0; i < image.rows; i++) {
for(int j = 0; j < image.cols; j++) {
cv::Vec3b pixel = image.at<cv::Vec3b>(i, j);
std::cout << "Pixel at (" << i << ", " << j << "): " << (int)pixel[0] << ", " << (int)pixel[1] << ", " << (int)pixel[2] << std::endl;
}
}
// 顯示圖像
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
在這個示例中,我們使用OpenCV的imread函數讀取了一個名為image.jpg的圖像文件,并將其存儲在一個cv::Mat對象中。然后我們檢查圖像是否成功讀取并顯示圖像的尺寸和通道數。最后,我們遍歷每個像素并輸出其RGB值,并使用imshow函數顯示圖像。