新增畸变参数

This commit is contained in:
13038267101 2023-01-09 16:03:12 +08:00
parent 5bf06af6ba
commit fa67e6cd17
5 changed files with 20 additions and 10 deletions

View File

@ -96,11 +96,10 @@ int CISTestImageProcess::test(const cv::Mat& image, CISTestResult& result)
box.size.width = box.size.height;
box.size.height = temp;
}
float scale_xy = box.size.width / box.size.height;
result.scaleXY1 = scale_xy;
result.scaleXY2 = scale_xy;
result.scaleXY3 = scale_xy;
result.w = box.size.width;
result.h = box.size.height;
result.scaleXY = box.size.width / box.size.height;
#endif
return 0;
}

View File

@ -9,9 +9,9 @@ public:
struct CISTestResult
{
double scaleXY1; //Ô˛1şá×ÝąČ
double scaleXY2; //Ô˛2şá×ÝąČ
double scaleXY3; //Ô˛3şá×ÝąČ
double w; //Ô˛şáÖá
double h; //Ô˛×ÝÖá
double scaleXY; //Ô˛3şá×ÝąČ
uchar colorBlock1[3]; //²ÊÉ«É«¿é1RGB
uchar colorBlock2[3]; //²ÊÉ«É«¿é2RGB

View File

@ -3422,7 +3422,12 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
}
else if(code == IO_CTRL_CODE_GET_DISTORTION_CHECK_VAL)
{
return get_distortion_check_val(*((int*)data));
if (distortion_val.h > 0)
{
*(SANE_DISTORTION_VAL*)data = distortion_val;
}
return SCANNER_ERR_OK;
//return get_distortion_check_val(*((int*)data));
}
else if(code == IO_CTRL_CODE_SET_DISTORTION_CHECK_VAL)
{
@ -3694,7 +3699,10 @@ void hg_scanner::image_process(std::shared_ptr<tiny_buffer>& buffer)
{
CISTestImageProcess::CISTestResult res;
err = hg_imgproc::cis_test_image(ImagePrc_pHandle_, res);
save_dpi_color_check_val = res.scaleXY1;
distortion_val.h = res.h;
distortion_val.w = res.w;
distortion_val.scaleXY = res.scaleXY;
save_dpi_color_check_val = res.scaleXY;
is_dpi_color_check = false;
}
else if (param.cis_image)

View File

@ -338,6 +338,9 @@ protected:
bool is_dpi_color_check; //纵向DPI、色差检测 ,畸变自动计算
float save_dpi_color_check_val; //保存纵向DPI、色差检测 ,畸变自动计算 的值
bool is_auto_falt; //是否进行平场校正
SANE_DISTORTION_VAL distortion_val; //畸变修正结构体保存
int split3399_; //3399设备正面和反面图像是相对的所以对折时反面需要进行特殊处理
int pid_;

View File

@ -168,7 +168,7 @@ void hg_scanner_400::thread_handle_usb_read(void)
}
}
if (sw.elapsed_s() > 30 && !is_auto_falt)//防止状态信息一直取不上来导致卡死
if (sw.elapsed_s() > 30)//防止状态信息一直取不上来导致卡死
{
status_ = !savestatus_.empty() ? savestatus_[0] : SCANNER_ERR_TIMEOUT;
savestatus_.clear();