Remove QDicomUtility.

This commit is contained in:
Krad
2022-09-20 09:41:54 +08:00
parent 34bc8dfd66
commit a77244e3dc
3 changed files with 4 additions and 85 deletions

View File

@@ -1,17 +1,15 @@
#include "DicomLoader.h" #include "DicomLoader.h"
#include "Common/SeriesImageSet.h"
#include "DICOMHeaderHelper.h"
#include "ExtendMedicalImageProperties.h"
#include "vtkDCMTKImageReader.h"
#include "vtkImageData.h"
#include <map> #include <map>
#include <algorithm> #include <algorithm>
#include <vtkStringArray.h> #include <vtkStringArray.h>
#include <QDebug> #include <QDebug>
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include "QDicomUtility.h"
#include "Common/SeriesImageSet.h"
#include "DICOMHeaderHelper.h"
#include "vtkDCMTKImageReader.h"
#define ORIEN_NUM 4 #define ORIEN_NUM 4
#define SINGLE_INSTANCE 1 #define SINGLE_INSTANCE 1

View File

@@ -1,65 +0,0 @@
//
// Created by Krad on 2022/3/4.
//
#include "QDicomUtility.h"
#include <QPaintEngine>
#include <QPainter>
#include <dcmtk/dcmdata/dcrledrg.h>
#include <dcmtk/dcmjpeg/djdecode.h>
#include <dcmtk/dcmjpls/djdecode.h>
#include <dcmtk/dcmdata/dcfilefo.h>
#include <dcmtk/dcmimgle/dcmimage.h>
#include "ExtendMedicalImageProperties.h"
QPixmap DicomUtil::GetThumbnail(ExtendMedicalImageProperties *property) {
double *wlww = property->GetNthWindowLevelPreset(0);
int ww = wlww ? ((int) wlww[0]) : (512);
int wl = wlww ? ((int) wlww[1]) : (256);
int sample = property->GetSamplePerPixel();
DcmRLEDecoderRegistration::registerCodecs(OFFalse, OFTrue);//注册解码器
/// register JPEG decompression codecs
DJDecoderRegistration::registerCodecs();//注册解码器
DJLSDecoderRegistration::registerCodecs();//
// FMJPEG2KDecoderRegistration::registerCodecs();//jpeg2000
DcmFileFormat *fileFormat = new DcmFileFormat();//读取文件获取传输语法
QPixmap pixmap(100, 100);
pixmap.fill(Qt::black);
if (fileFormat->loadFile(property->GetThumbnailFileName()).good()) {
DcmDataset *dset = fileFormat->getDataset();
//将原始传输语法输入DicomImage编译类库自我解压压缩的图像
DicomImage dcmImage(fileFormat, dset->getOriginalXfer(), CIF_MayDetachPixelData);
unsigned long w = 100;
bool flag = dcmImage.getWidth() > dcmImage.getHeight();
DicomImage *sdcmImage = dcmImage.createScaledImage(w, 0, 0, 1);
sdcmImage->setWindow(wl, ww);
if (sample == 1) {
uchar *data = (uchar *) sdcmImage->getOutputData(8);//按8位的位宽取数据
QImage image(data, sdcmImage->getWidth(), sdcmImage->getHeight(),
QImage::Format_Grayscale8);//使用8位深度的灰度图做输出
if (sdcmImage->getHeight() > 100) image = image.scaledToHeight(100);
QPainter p(&pixmap);
p.drawPixmap(50 - image.width() / 2, 50 - image.height() / 2, QPixmap::fromImage(image));
}
//RGB color image
else {
uchar *data = (uchar *) sdcmImage->getOutputData(8);//按8位的位宽取数据
QImage image(data, sdcmImage->getWidth(), sdcmImage->getHeight(),
QImage::Format_RGB888);//使用8位深度的rgb图做输出
if (sdcmImage->getHeight() > 100) image = image.scaledToHeight(100);
QPainter p(&pixmap);
p.drawPixmap(50 - image.width() / 2, 50 - image.height() / 2, QPixmap::fromImage(image));
}
delete sdcmImage;
// p.save();
}
delete fileFormat;
DcmRLEDecoderRegistration::cleanup();
DJDecoderRegistration::cleanup();
DJLSDecoderRegistration::cleanup();
// FMJPEG2KDecoderRegistration::cleanup();
return pixmap;
}

View File

@@ -1,14 +0,0 @@
//
// Created by 87714 on 2021/7/26.
//
#ifndef OMEGAV_QDICOMUTILITY_H
#define OMEGAV_QDICOMUTILITY_H
#include <QtGui/qpixmap.h>
class ExtendMedicalImageProperties;
namespace DicomUtil {
QPixmap GetThumbnail(ExtendMedicalImageProperties *property);
}
#endif //OMEGAV_QDICOMUTILITY_H