修复因文件后缀导致cv::im_write异常的问题
This commit is contained in:
parent
b5fd5a1ef7
commit
cdc979ea38
|
@ -225,7 +225,7 @@ namespace hg_imgproc
|
||||||
,Dynamicopen_HGBase_pHandle_(NULL)
|
,Dynamicopen_HGBase_pHandle_(NULL)
|
||||||
,Dynamicopen_HGImageprc_pHandle_(NULL),isx86_Advan_(isx86_Advan)
|
,Dynamicopen_HGImageprc_pHandle_(NULL),isx86_Advan_(isx86_Advan)
|
||||||
{
|
{
|
||||||
cv::setUseOptimized(isx86_Advan_); //开关cpu高级指令集
|
cv::setUseOptimized(isx86_Advan_); //开关cpu高级指令�
|
||||||
}
|
}
|
||||||
~imgproc()
|
~imgproc()
|
||||||
{
|
{
|
||||||
|
@ -326,7 +326,7 @@ namespace hg_imgproc
|
||||||
{
|
{
|
||||||
return SCANNER_ERR_OUT_OF_RANGE;
|
return SCANNER_ERR_OUT_OF_RANGE;
|
||||||
}
|
}
|
||||||
printf("HGBaselib_path:%s HGImagePrclib_path:%s\r\n",HGBaselib_path.c_str(),HGImagePrclib_path.c_str());
|
printf("HGBaselib_pathï¼?s HGImagePrclib_path:%s\r\n",HGBaselib_path.c_str(),HGImagePrclib_path.c_str());
|
||||||
|
|
||||||
Dynamicopen_HGImageprc_pHandle_ = dlopen(HGImagePrclib_path.c_str(), RTLD_LAZY);
|
Dynamicopen_HGImageprc_pHandle_ = dlopen(HGImagePrclib_path.c_str(), RTLD_LAZY);
|
||||||
Dynamicopen_HGBase_pHandle_ = dlopen(HGBaselib_path.c_str(), RTLD_LAZY);
|
Dynamicopen_HGBase_pHandle_ = dlopen(HGBaselib_path.c_str(), RTLD_LAZY);
|
||||||
|
@ -511,7 +511,7 @@ namespace hg_imgproc
|
||||||
catch (const std::exception& e)
|
catch (const std::exception& e)
|
||||||
{
|
{
|
||||||
LOG_INFO(LOG_LEVEL_FATAL, e.what());
|
LOG_INFO(LOG_LEVEL_FATAL, e.what());
|
||||||
throw(e); // 继续抛到上层处理。
|
throw(e); // 继ç»æŠ›åˆ°ä¸Šå±‚处ç<EFBFBD>†ã€?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ namespace hg_imgproc
|
||||||
|
|
||||||
if (pid_ == 0x100 || pid_ == 0x200 || pid_ == 0x300 || pid_ == 0x400 || pid == 0x402 || pid == 0x302)
|
if (pid_ == 0x100 || pid_ == 0x200 || pid_ == 0x300 || pid_ == 0x400 || pid == 0x402 || pid == 0x302)
|
||||||
{
|
{
|
||||||
//////除穿孔算法移至解压图像之后
|
//////除穿å”算法移至解压图åƒ<EFBFBD>之å<EFBFBD>?
|
||||||
double left = img_conf_.fillholeratio_left / 100.0;
|
double left = img_conf_.fillholeratio_left / 100.0;
|
||||||
double right = img_conf_.fillholeratio_right / 100.0;
|
double right = img_conf_.fillholeratio_right / 100.0;
|
||||||
double top = img_conf_.fillholeratio_up / 100.0;
|
double top = img_conf_.fillholeratio_up / 100.0;
|
||||||
|
@ -1336,7 +1336,7 @@ namespace hg_imgproc
|
||||||
info.width = mats.cols;
|
info.width = mats.cols;
|
||||||
info.origin = HGBASE_IMGORIGIN_TOP;
|
info.origin = HGBASE_IMGORIGIN_TOP;
|
||||||
int bits = mats.channels() == 1 ? 8 : 24;
|
int bits = mats.channels() == 1 ? 8 : 24;
|
||||||
info.widthStep = mats.step; //opencv原始值
|
info.widthStep = mats.step; //opencv原始�
|
||||||
info.type = mats.channels() == 1 ? HGBASE_IMGTYPE_GRAY : HGBASE_IMGTYPE_BGR;
|
info.type = mats.channels() == 1 ? HGBASE_IMGTYPE_GRAY : HGBASE_IMGTYPE_BGR;
|
||||||
|
|
||||||
int ret = HGBase_CreatImg(const_cast<uchar*>(mats.data), &info, &image);
|
int ret = HGBase_CreatImg(const_cast<uchar*>(mats.data), &info, &image);
|
||||||
|
@ -1348,11 +1348,11 @@ namespace hg_imgproc
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 8位图转1位图
|
/// 8ä½<EFBFBD>图è½?ä½<C3A4>图
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="image">8bit图</param>
|
/// <param name="image">8bitå›?/param>
|
||||||
/// <param name="threshold">阈值,建议默认127</param>
|
/// <param name="threshold">阈值,建议默认127</param>
|
||||||
/// <param name="reverse">true为反色,即黑0白1;反之亦然</param>
|
/// <param name="reverse">true为å<EFBFBD><EFBFBD>色,å<EFBFBD>³é»‘0ç™?ï¼›å<E280BA><C3A5>之亦ç„?/param>
|
||||||
/// <param name="align">true为四字节对齐</param>
|
/// <param name="align">true为四字节对齐</param>
|
||||||
/// <returns>1位图</returns>
|
/// <returns>1位图</returns>
|
||||||
///
|
///
|
||||||
|
@ -1766,8 +1766,8 @@ namespace hg_imgproc
|
||||||
return SCANNER_ERR_OPEN_FILE_FAILED;
|
return SCANNER_ERR_OPEN_FILE_FAILED;
|
||||||
|
|
||||||
fseek(src, 0, SEEK_END);
|
fseek(src, 0, SEEK_END);
|
||||||
len = ftell(src) - fh;
|
len = ftell(src);
|
||||||
if (len <= 0)
|
if (len <= fh + sizeof(bih))
|
||||||
{
|
{
|
||||||
fclose(src);
|
fclose(src);
|
||||||
|
|
||||||
|
@ -1777,7 +1777,7 @@ namespace hg_imgproc
|
||||||
fseek(src, 0, SEEK_SET);
|
fseek(src, 0, SEEK_SET);
|
||||||
fread(&bfh, sizeof(bfh), 1, src);
|
fread(&bfh, sizeof(bfh), 1, src);
|
||||||
fread(&bih, sizeof(bih), 1, src);
|
fread(&bih, sizeof(bih), 1, src);
|
||||||
if (len < bfh.bfOffBits)
|
if (len < bfh.bfOffBits || len < bfh.bfSize)
|
||||||
{
|
{
|
||||||
fclose(src);
|
fclose(src);
|
||||||
|
|
||||||
|
@ -1786,7 +1786,7 @@ namespace hg_imgproc
|
||||||
|
|
||||||
// we consider pallete as gray, discard pallete here ...
|
// we consider pallete as gray, discard pallete here ...
|
||||||
fseek(src, bfh.bfOffBits, SEEK_SET);
|
fseek(src, bfh.bfOffBits, SEEK_SET);
|
||||||
len -= bfh.bfOffBits;
|
// len -= bfh.bfOffBits;
|
||||||
data.reset(new std::vector<unsigned char>(len));
|
data.reset(new std::vector<unsigned char>(len));
|
||||||
fread(&(*data.get())[0], 1, len, src);
|
fread(&(*data.get())[0], 1, len, src);
|
||||||
fclose(src);
|
fclose(src);
|
||||||
|
@ -1854,7 +1854,9 @@ namespace hg_imgproc
|
||||||
cpr.push_back(resolution_y);
|
cpr.push_back(resolution_y);
|
||||||
if (conv->dst.is_file)
|
if (conv->dst.is_file)
|
||||||
{
|
{
|
||||||
cv::imwrite(conv->dst.data, imsg, cpr);
|
std::string tmp(conv->dst.data);
|
||||||
|
cv::imwrite((tmp + ".jpg").c_str(), imsg, cpr);
|
||||||
|
rename((tmp + ".jpg").c_str(), tmp.c_str());
|
||||||
|
|
||||||
//FILE* f = fopen(conv->dst.data, "rb+");
|
//FILE* f = fopen(conv->dst.data, "rb+");
|
||||||
//if (f)
|
//if (f)
|
||||||
|
@ -1867,7 +1869,7 @@ namespace hg_imgproc
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string tmpf(hg_log::temporary_path() + PATH_SEPARATOR + "imgtrans.tmp");
|
std::string tmpf(hg_log::temporary_path() + PATH_SEPARATOR + "imgtrans.jpg");
|
||||||
cv::imwrite(tmpf.c_str(), imsg, cpr);
|
cv::imwrite(tmpf.c_str(), imsg, cpr);
|
||||||
size_t bytes = 0;
|
size_t bytes = 0;
|
||||||
conv->dst.data = (SANE_String_Const)G4Tiff::load_mini_file(tmpf.c_str(), &bytes, allocate_memory);
|
conv->dst.data = (SANE_String_Const)G4Tiff::load_mini_file(tmpf.c_str(), &bytes, allocate_memory);
|
||||||
|
|
Loading…
Reference in New Issue