在虚函数apply接口中增加判断,以避免处理空图像导致的异常问题。

This commit is contained in:
lovelyyoung 2020-03-17 21:06:21 +08:00
parent 9053cedda4
commit e873553d48
8 changed files with 55 additions and 23 deletions

View File

@ -44,12 +44,16 @@ void CImageApplyAdjustColors::apply(cv::Mat& pDib,int side)
void CImageApplyAdjustColors::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
{
if (mats.empty()) return;
if (!mats[0].empty()) {
apply(mats[0], 0);
}
if (isTwoSide && mats.size() > 1)
if (isTwoSide && mats.size() > 1) {
if(!mats[1].empty())
apply(mats[1], 1);
}
}
void CImageApplyAdjustColors::setAdjustColors(int brightness, int contrast, float gamma)
{

View File

@ -166,8 +166,10 @@ void CImageApplyAutoCrop::apply(cv::Mat& pDib, int side)
void CImageApplyAutoCrop::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
{
if (mats.empty()) return;
if (!mats[0].empty()) {
apply(mats[0], 0);
}
if (isTwoSide && mats.size() > 1)
{
@ -175,6 +177,7 @@ void CImageApplyAutoCrop::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
if (!mats[0].empty())
m_fixedSize = mats[0].size();
if(!mats[0].empty())
apply(mats[1], 1);
if (!mats[0].empty())

View File

@ -74,11 +74,16 @@ void CImageApplyBWBinaray::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
{
if (mats.empty()) return;
if (!mats[0].empty()) {
apply(mats[0], 0);
}
if (isTwoSide && mats.size() > 1)
if (isTwoSide && mats.size() > 1) {
if (!mats[1].empty())
apply(mats[1], 1);
}
}
void CImageApplyBWBinaray::errorDiffuse(cv::Mat & image)
{

View File

@ -63,11 +63,15 @@ void CImageApplyChannel::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
{
if (mats.empty()) return;
if (!mats[0].empty()) {
apply(mats[0], 0);
}
if (isTwoSide && mats.size() > 1)
if (isTwoSide && mats.size() > 1) {
if (!mats[1].empty())
apply(mats[1], 1);
}
}
void CImageApplyChannel::except_channel(const cv::Mat & src, cv::Mat & dst, int channel)
{

View File

@ -41,8 +41,12 @@ void CImageApplyCrop::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
{
if (mats.empty()) return;
if (!mats[0].empty()) {
apply(mats[0], 0);
}
if (isTwoSide && mats.size() > 1)
if (isTwoSide && mats.size() > 1) {
if (!mats[1].empty())
apply(mats[1], 1);
}
}

View File

@ -168,8 +168,12 @@ void CImageApplyDiscardBlank::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
{
if (mats.empty()) return;
if (!mats[0].empty()) {
apply(mats[0], 0);
}
if (isTwoSide && mats.size() > 1)
if (isTwoSide && mats.size() > 1) {
if (!mats[1].empty())
apply(mats[1], 1);
}
}

View File

@ -48,8 +48,12 @@ void CImageApplyResize::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
{
if (mats.empty()) return;
if (!mats[0].empty()) {
apply(mats[0], 0);
}
if (isTwoSide && mats.size() > 1)
if (isTwoSide && mats.size() > 1) {
if (!mats[1].empty())
apply(mats[1], 1);
}
}

View File

@ -121,8 +121,12 @@ void CImageApplyRotation::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
{
if (mats.empty()) return;
if (!mats[0].empty()) {
apply(mats[0], 0);
}
if (isTwoSide && mats.size() > 1)
if (isTwoSide && mats.size() > 1) {
if (!mats[1].empty())
apply(mats[1], 1);
}
}