Make median filter parallel
This commit is contained in:
+9
-4
@@ -26,7 +26,7 @@ void loadExifEntry(ImageInfoData &info, ExifContent *content, ExifTag tag)
|
||||
}
|
||||
}
|
||||
|
||||
void drawPeaks(QImage &img, const std::vector<Peak> &peaks, bool half)
|
||||
void drawPeaks(QImage &img, const std::vector<Peak> &peaks)
|
||||
{
|
||||
QPixmap pix = QPixmap::fromImage(img);
|
||||
QPainter painter(&pix);
|
||||
@@ -222,9 +222,11 @@ void LoadRunable::run()
|
||||
|
||||
QImage img;
|
||||
RawImageAbs *rawImage = nullptr;
|
||||
bool raw = false;
|
||||
if(m_file.endsWith(".CR2", Qt::CaseInsensitive))
|
||||
{
|
||||
loadRAW(m_file, info, m_analyzeLevel != None ? &rawImage : nullptr, &img);
|
||||
raw = true;
|
||||
}
|
||||
else if(m_file.endsWith(".FIT", Qt::CaseInsensitive))
|
||||
{
|
||||
@@ -244,7 +246,7 @@ void LoadRunable::run()
|
||||
}
|
||||
}
|
||||
|
||||
if(m_analyzeLevel >= Statistics)
|
||||
if(rawImage && m_analyzeLevel >= Statistics)
|
||||
{
|
||||
uint64_t mean, median, min, max;
|
||||
double stdDev;
|
||||
@@ -258,10 +260,13 @@ void LoadRunable::run()
|
||||
if(m_analyzeLevel >= Peaks)
|
||||
{
|
||||
std::vector<Peak> peaks;
|
||||
rawImage->quarter();
|
||||
if(raw) {
|
||||
rawImage->quarter();
|
||||
qDebug() << "quarter" << timer.restart();
|
||||
}
|
||||
rawImage->medianFilter();
|
||||
int numPeaks = rawImage->findPeaks(median+stdDev, 20, peaks);
|
||||
drawPeaks(img, peaks, true);
|
||||
drawPeaks(img, peaks);
|
||||
info.append(StringPair(QObject::tr("Peaks"), QString::number(numPeaks)));
|
||||
info.append(StringPair(QObject::tr("Peaks draw"), QString::number(peaks.size())));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user