36 lines
966 B
C++
36 lines
966 B
C++
#include "ImageWorker.h"
|
|
|
|
void ImageWorker::process(cv::Mat image, ImageWorker::Operation operation, double value, int dx, int dy)
|
|
{
|
|
if (image.empty()) {
|
|
Q_EMIT failed(QStringLiteral("没有可处理的图片"));
|
|
return;
|
|
}
|
|
|
|
ProcessResult result;
|
|
switch (operation) {
|
|
case Operation::Rotate:
|
|
result = ImageProcessor::rotate(image, value);
|
|
break;
|
|
case Operation::Scale:
|
|
result = ImageProcessor::scale(image, value);
|
|
break;
|
|
case Operation::Translate:
|
|
result = ImageProcessor::translate(image, dx, dy);
|
|
break;
|
|
case Operation::ExtractTargets:
|
|
result = ImageProcessor::extractTargets(image);
|
|
break;
|
|
case Operation::ClassifySimple:
|
|
result = ImageProcessor::classifySimple(image);
|
|
break;
|
|
}
|
|
|
|
if (result.image.empty()) {
|
|
Q_EMIT failed(QStringLiteral("图像处理失败"));
|
|
return;
|
|
}
|
|
|
|
Q_EMIT finished(result);
|
|
}
|