qt-correction-tool/imageprocess/ImageMatQueue.cpp

68 lines
1.4 KiB
C++

#include "ImageMatQueue.h"
#include "ImageApplyHeaders.h"
#include "stdarg.h"
ImageMatQueue::ImageMatQueue()
{
}
void ImageMatQueue::addProcess(ImageProcessMode option, ...)
{
va_list arg_ptr;
switch (option)
{
case AdjustColors:
va_start(arg_ptr, option);
m_list_proc.push_back(new CImageApplyOutHole(static_cast<float>(va_arg(arg_ptr, double)), static_cast<float>(va_arg(arg_ptr, double)),
va_arg(arg_ptr, int)));
break;
case AutoContrast:
break;
case AutoCrop:
break;
case BWBinaray:
break;
case Channel:
break;
case CustomCrop:
break;
case CustomGamma:
break;
case DetachNoise:
break;
case DiscardBlank:
break;
case OutHole:
break;
case RefuseInflow:
break;
case Resize:
break;
case Rotation:
break;
case Sharpen:
break;
case Split:
break;
case TextureRemoval:
break;
}
//va_arg(arg_ptr, int);
va_end(arg_ptr);
}
void ImageMatQueue::applyProcess(std::vector<cv::Mat>& mats)
{
for (size_t i = 0, length = m_list_proc.size(); i < length; i++)
m_list_proc[i]->apply(mats, true);
}
void ImageMatQueue::clearProcess()
{
for (CImageApply*& apply : m_list_proc)
delete apply;
m_list_proc.clear();
}