解决答题卡除红灰度出彩色图问题

This commit is contained in:
lovelyyoung 2020-07-07 10:13:18 +08:00
parent 790e085592
commit f4be6bcdb3
1 changed files with 8 additions and 9 deletions

View File

@ -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);