调整除摩尔纹模式

This commit is contained in:
modehua 2023-10-21 02:20:07 -07:00
parent f60edbd565
commit 07548a90f3
4 changed files with 29 additions and 31 deletions

View File

@ -214,17 +214,18 @@ void MultiFrameCapture::UpdateScanParam(HG_ScanConfiguration config)
{ {
video->HtCamSetSpTime2(fpgaparam.Sp * 3); video->HtCamSetSpTime2(fpgaparam.Sp * 3);
} }
video->HtCamSetStSp(fpgaparam.MaxBright); video->HtCamSetStSp(172);//172 是根据实际测试出来的图像质量得来
configFPGAParam(config_color, config_dpi); configFPGAParam(config_color, config_dpi);
{ {
int val = config.params.dpi == 3 ? 600 :(config.params.dpi == 2?300:200); int val = config.params.dpi == 3 ? 600 :(config.params.dpi == 2?300:200);
printf("val = %d\r\n",val);
//除摩尔纹模式 //除摩尔纹模式
if(config.params.slow_moire && config.params.dpi != 3) if(config.params.slow_moire && config.params.dpi != 3)
{ {
int sp = fpgaparam.Sp - 538; int sp = fpgaparam.Sp + 232; //258 摩尔纹是400dpi 4677的高度
val = 400; val = 400;
video->HtCamSetSpTime(sp,49); // 2344 灰色 //2023-8-10 最新2650 video->HtCamSetSpTime(sp,49); // 2344 灰色 //2023-8-10 最新2650
if (color_mode_) if (color_mode_)
@ -1047,7 +1048,7 @@ void MultiFrameCapture::openDevice(int dpi, int mode)
video->HtCamSetSpTime2(fpgaparam.Sp * 3); video->HtCamSetSpTime2(fpgaparam.Sp * 3);
} }
video->HtCamSetStSp(fpgaparam.MaxBright); video->HtCamSetStSp(172);
configFPGAParam(config_color, config_dpi); configFPGAParam(config_color, config_dpi);
printf(" -----------------------resolution = %d config_color = %d config_dpi:%d------------------\r\n",resolution_, config_color,config_dpi); printf(" -----------------------resolution = %d config_color = %d config_dpi:%d------------------\r\n",resolution_, config_color,config_dpi);

View File

@ -97,24 +97,22 @@ Scanner::~Scanner()
} }
void Scanner::updateSpeedMode(int speed) void Scanner::updateSpeedMode()
{ {
m_scaninfo = GetScanInfoFromJson(); m_scaninfo = GetScanInfoFromJson();
if(m_scaninfo.SpeedMode==0) int sp = m_scaninfo.SpeedMode;
m_scaninfo.SpeedMode=3; if(sp == 0)
sp = 3;
unsigned int t_dpi = m_config.params.dpi; unsigned int t_dpi = m_config.params.dpi;
if(typeid(*capturer)==typeid(MultiFrameCapture)) if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19 ) //长文稿采用600dpi模式扫描
if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19 ) //长文稿采用600dpi模式扫描 t_dpi = 3;
t_dpi = 3; if (m_config.params.slow_moire) //摩尔纹特殊处理
if (m_config.params.slow_moire) //摩尔纹使用300dpi进行采集 t_dpi = sp = 16;
{
t_dpi = 2; motorCuozhi.speedChange(sp, t_dpi,m_config.params.isColor);
} motorZouzhi.speedChange(sp, t_dpi,m_config.params.isColor);
motorCuozhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor);
motorZouzhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor);
} }
void Scanner::startScan() void Scanner::startScan()
@ -123,7 +121,7 @@ void Scanner::startScan()
threadRunScan.join(); threadRunScan.join();
stop_countdown(); stop_countdown();
this_thread::sleep_for(std::chrono::milliseconds(200)); this_thread::sleep_for(std::chrono::milliseconds(200));
updateSpeedMode(4); updateSpeedMode();
// //开始进行扫描 // //开始进行扫描
threadRunScan = std::thread(&Scanner::runScan, this); threadRunScan = std::thread(&Scanner::runScan, this);
} }
@ -261,13 +259,13 @@ void Scanner::runScan()
int max = 7; int max = 7;
if(m_config.params.pageSize >= (int)PaperSize::G400_LONGLETTER) if(m_config.params.pageSize >= (int)PaperSize::G400_LONGLETTER)
max = m_scaninfo.SpeedMode>3?10:25; max = m_scaninfo.SpeedMode > 3 ? 10 : 25;
else else
max = m_scaninfo.SpeedMode>3?5:8; max = m_scaninfo.SpeedMode > 3 ? 5 : 8;
max = m_config.params.dpi > 2 ? 30 : max * m_config.params.dpi; max = m_config.params.dpi > 2 ? 30 : max * m_config.params.dpi;
if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19) if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19 || m_config.params.slow_moire)
{ {
max = 200; max = 200;
} }
@ -330,7 +328,7 @@ void Scanner::runScan()
} }
if(b_autosize) if(b_autosize)
{ {
int de = (5 - m_scaninfo.SpeedMode)*10*m_config.params.dpi; int de = (5 - m_scaninfo.SpeedMode) * 10 * m_config.params.dpi;
if (de == 3) if (de == 3)
{ {
de = 0; de = 0;

View File

@ -179,7 +179,7 @@ public:
} }
} }
printf(" UpdateScanInfo speed mode = %d \n",m_scaninfo.SpeedMode); printf(" UpdateScanInfo speed mode = %d \n",m_scaninfo.SpeedMode);
updateSpeedMode(m_scaninfo.SpeedMode); updateSpeedMode();
} }
CaptureParams GetCaptureParams() CaptureParams GetCaptureParams()
{ {
@ -192,7 +192,7 @@ public:
{ {
return m_scaninfo; return m_scaninfo;
} }
void updateSpeedMode(int speed); void updateSpeedMode();
void ResetCorrectflags() { m_correctting = false; } void ResetCorrectflags() { m_correctting = false; }
void StopScan(int Evt) void StopScan(int Evt)
{ {

View File

@ -404,19 +404,18 @@ void UsbScanner::UpdateScanInfo(int type, void *data)
return; return;
case USBCommand::SET_SPEED_MODE: case USBCommand::SET_SPEED_MODE:
if (*(unsigned int *)(data) > SPEED_MODE_MAX) if (*(unsigned int *)(data) > SPEED_MODE_MAX)
{
info.SpeedMode = 3; info.SpeedMode = 3;
}
else else
{
info.SpeedMode = *(unsigned int *)(data); info.SpeedMode = *(unsigned int *)(data);
}
LOG("UsbScanner SET SpeedMode == %d------ \n", info.SpeedMode); LOG("UsbScanner SET SpeedMode == %d------ \n", info.SpeedMode);
iter = mapFradme_SP.find(info.SpeedMode); iter = mapFradme_SP.find(info.SpeedMode);
if (iter != mapFradme_SP.end()) if (iter != mapFradme_SP.end())
info.FWVersion = iter->second.FWVERSIO; info.FWVersion = iter->second.FWVERSIO;
SaveScaninfo(info); SaveScaninfo(info);
m_hgScanner->updateSpeedMode(info.SpeedMode); m_hgScanner->updateSpeedMode();
LOG("UsbScanner SET SpeedMode == %d-------info.FWVersion = %s \n", info.SpeedMode, info.FWVersion.c_str()); LOG("UsbScanner SET SpeedMode == %d-------info.FWVersion = %s \n", info.SpeedMode, info.FWVersion.c_str());
break; break;
default: default:
@ -501,7 +500,7 @@ void UsbScanner::mount_usb_device()
mkdir functions/ffs.camtp\n \ mkdir functions/ffs.camtp\n \
mkdir strings/0x409\n \ mkdir strings/0x409\n \
mkdir configs/c.1/strings/0x409\n \ mkdir configs/c.1/strings/0x409\n \
echo 0x0300 > idProduct\n \ echo 0x0306 > idProduct\n \
echo 0x3072 > idVendor\n \ echo 0x3072 > idVendor\n \
echo \"01234567AABBCCDDEE\" > strings/0x409/serialnumber\n \ echo \"01234567AABBCCDDEE\" > strings/0x409/serialnumber\n \
echo \"Holdtecs Technologies\" > strings/0x409/manufacturer\n \ echo \"Holdtecs Technologies\" > strings/0x409/manufacturer\n \