2022-07-29 08:41:34 +00:00
|
|
|
#include "ImageMulti.h"
|
|
|
|
|
2022-11-19 03:46:01 +00:00
|
|
|
IMageMulti::IMageMulti(int multiType, int thre, short thresholdType, int blockSize, int constant)
|
|
|
|
: m_multiType(multiType)
|
|
|
|
, m_BWBinaray((CImageApplyBWBinaray::ThresholdType)thresholdType, thre, blockSize, constant)
|
2022-07-29 08:41:34 +00:00
|
|
|
{
|
2022-11-19 03:46:01 +00:00
|
|
|
|
2022-07-29 08:41:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
IMageMulti::~IMageMulti(void)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
std::vector<cv::Mat> IMageMulti::apply(cv::Mat& pDib)
|
|
|
|
{
|
|
|
|
std::vector<cv::Mat> retMats;
|
|
|
|
if (pDib.empty())
|
|
|
|
return retMats;
|
|
|
|
retMats.push_back(pDib);
|
|
|
|
switch (m_multiType)
|
|
|
|
{
|
|
|
|
case ALL:
|
|
|
|
{
|
|
|
|
if (pDib.channels() == 3){
|
|
|
|
cv::Mat dst;
|
|
|
|
cv::cvtColor(pDib, dst,cv::COLOR_BGR2GRAY);
|
|
|
|
retMats.push_back(dst);
|
|
|
|
}
|
|
|
|
cv::Mat dstThre;
|
|
|
|
cv::cvtColor(pDib, dstThre,cv::COLOR_BGR2GRAY);
|
2022-11-19 03:46:01 +00:00
|
|
|
m_BWBinaray.apply(dstThre, 0);
|
2022-07-29 08:41:34 +00:00
|
|
|
if (!dstThre.empty())
|
|
|
|
{
|
|
|
|
retMats.push_back(dstThre);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case COLORGRAY:
|
|
|
|
{
|
|
|
|
if (pDib.channels() == 3) {
|
|
|
|
cv::Mat dstGray;
|
|
|
|
cv::cvtColor(pDib, dstGray, cv::COLOR_BGR2GRAY);
|
|
|
|
retMats.push_back(dstGray);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case COLORBW:
|
|
|
|
{
|
|
|
|
if (pDib.channels() == 3) {
|
|
|
|
cv::Mat dstGray;
|
|
|
|
cv::cvtColor(pDib, dstGray, cv::COLOR_BGR2GRAY);
|
2022-11-19 03:46:01 +00:00
|
|
|
m_BWBinaray.apply(dstGray, 0);
|
|
|
|
retMats.push_back(dstGray);
|
2022-07-29 08:41:34 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case GRAYBW://pDib should be GreyImage(channels() == 1)
|
|
|
|
{
|
2022-11-19 03:46:01 +00:00
|
|
|
cv::Mat dstBW = pDib.clone();
|
|
|
|
m_BWBinaray.apply(dstBW, 0);
|
2022-07-29 08:41:34 +00:00
|
|
|
if (!dstBW.empty())
|
|
|
|
retMats.push_back(dstBW);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return retMats;
|
|
|
|
}
|