Bitmapの読み込みはSTBIを優先させるようにした(32ビットBitmapをOpenCVで読み込むと画像がおかしくなるから) #35

This commit is contained in:
lltcggie 2016-07-08 00:42:44 +09:00
parent a0c29c671b
commit 26cd687a65

View File

@ -228,6 +228,9 @@ Waifu2x::eWaifu2xError stImage::LoadMat(cv::Mat &im, const boost::filesystem::pa
if (!readFile(input_file, img_data))
return Waifu2x::eWaifu2xError_FailedOpenInputFile;
const boost::filesystem::path ipext(input_file.extension());
if (!boost::iequals(ipext.string(), ".bmp")) // 特定のファイル形式の場合OpenCVで読むとバグることがあるのでSTBIを優先させる
{
cv::Mat im(img_data.size(), 1, CV_8U, img_data.data());
original_image = cv::imdecode(im, cv::IMREAD_UNCHANGED);
@ -238,6 +241,18 @@ Waifu2x::eWaifu2xError stImage::LoadMat(cv::Mat &im, const boost::filesystem::pa
return ret;
}
}
else
{
const Waifu2x::eWaifu2xError ret = LoadMatBySTBI(original_image, img_data);
if (ret != Waifu2x::eWaifu2xError_OK)
{
cv::Mat im(img_data.size(), 1, CV_8U, img_data.data());
original_image = cv::imdecode(im, cv::IMREAD_UNCHANGED);
if (original_image.empty())
return ret;
}
}
}
im = original_image;