diff --git a/huagao/Device/ImageMatQueue.cpp b/huagao/Device/ImageMatQueue.cpp index 92967c5e..21a2c233 100644 --- a/huagao/Device/ImageMatQueue.cpp +++ b/huagao/Device/ImageMatQueue.cpp @@ -131,7 +131,7 @@ void ImageMatQueue::setparam(const GScanCap& param) + "\n imageRotateDegree : " + to_string(scanParam.imageRotateDegree) + "\n is_autocrop : " + to_string(scanParam.is_autocrop) + "\n is_autodiscradblank_normal : " + to_string(scanParam.is_autodiscradblank_normal) + "\n is_autodiscradblank_vince : " + to_string(scanParam.is_autodiscradblank_vince) + "\n is_autotext : " + to_string(scanParam.is_autotext) + "\n is_backrotate180 : " + to_string(scanParam.is_backrotate180) + "\n is_duplex : " + to_string(scanParam.is_duplex) + "\n is_switchfrontback : " + to_string(scanParam.is_switchfrontback) + "\n multi_output_red : " + to_string(scanParam.multi_output_red) + "\n paperAlign : " + to_string(scanParam.paperAlign) + "\n papertype : " + to_string(scanParam.papertype) + "\n resolution_dst : " + to_string(scanParam.resolution_dst) + "\n scannum : " + to_string(scanParam.scannum) + "\n sharpen : " + to_string(scanParam.sharpen)+ - "Pixtype : "+to_string(scanParam.pixtype); + "\n Pixtype : "+to_string(scanParam.pixtype); FileTools::write_log("2.txt", outinfo); #endif // DEBUG @@ -142,10 +142,8 @@ void ImageMatQueue::setparam(const GScanCap& param) } //确保能够获取正反两面图 { - bool islongcustomcrop = false; - if (param.papertype == TwSS::USStatement) - islongcustomcrop = true; - + bool islongcustomcrop = param.papertype == TwSS::USStatement; + //bool isautocrop = param.papertype == TwSS::None; CSize fixedSize; #ifdef REAL300DPI fixedSize = papersize.GetPaperSize(param.papertype, param.resolution_dst > 240.0f ? 300.0f : 200.0f, param.paperAlign); @@ -317,13 +315,11 @@ void ImageMatQueue::proc() if (scanParam.is_switchfrontback) swap(mats[0], mats[1]); - //StopWatch sw; + for (int j = 0; j < m_iaList.size(); j++) { m_iaList[j]->apply(mats, scanParam.is_duplex); - //FileTools::write_log("E:\\Users\\huago\\Desktop\\3.txt", "image proc "+std::to_string(j)+" time eplsed: " + std::to_string(sw.elapsed_ms())); - //sw.reset(); } - //FileTools::write_log("E:\\Users\\huago\\Desktop\\2.txt", "image proc time eplsed: " + std::to_string(sw.elapsed_ms())); + for (int i = 0; i < mats.size(); i++) { if (!scanParam.is_duplex && i == 1) { @@ -332,6 +328,9 @@ void ImageMatQueue::proc() } if (!mats[i].empty()) { IMat2Bmp idata; + if (scanParam.pixtype == 1 && scanParam.hsvcorrect) + if (mats[i].channels() == 3) + cvtColor(mats[i], mats[i], cv::COLOR_BGR2GRAY); idata = scanParam.pixtype == 0 ? (IMat2Bmp)Mat2BmpBw(mats[i], scanParam.resolution_dst) : Mat2Bmp(mats[i], scanParam.resolution_dst); auto data = idata.getBmpDataBuffer(); EnqueueBmpBuffer(data);