#include <filesystem>
#include <fstream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/opencv.hpp>
QString filename = QFileDialog::getOpenFileName(this, tr("Open Image"), QCoreApplication::applicationDirPath(), tr(" *raw *png *tif *bmp")); //打开图片文件,选择图片
if (filename.isEmpty()){return;}
else {qDebug() << "filename: " << filename;}
if(filename.contains("raw")){
std::filesystem::path rawFilePath = filename.toStdString();
// 检查文件是否存在
if (!std::filesystem::exists(rawFilePath))
{
qDebug() << "Error: input_image.raw does not exist";
}
// 打开RAW图像文件并读取图像数据
std::ifstream rawFile(rawFilePath, std::ios::binary);
if (!rawFile.is_open())
{
qDebug() << "Error: Unable to open input_image.raw";
}
int Width = 1536;
int Height = 1536;
// 创建缓冲区以保存图像数据
std::vector<unsigned short> buffer(Width * Height);
// 从文件中读取图像数据
rawFile.read(reinterpret_cast<char*>(buffer.data()), buffer.size()* sizeof(unsigned short));
rawFile.close();
cv::Mat image(Height, Width, CV_16U, buffer.data());
QImage denoisedQImage;
denoisedQImage = QImage(image.data, image.cols, image.rows, QImage::Format_Grayscale16);
QPixmap pix = QPixmap::fromImage(denoisedQImage);
m_pImgView->setImage(QPixmap::fromImage(denoisedQImage));
【qt】raw
于 2024-06-05 17:45:59 首次发布