46 lines
1.8 KiB
C
Raw Normal View History

#pragma once
#include <string>
#include "waifu2x.h"
class cNet
{
private:
2016-07-03 17:13:02 +09:00
Waifu2x::eWaifu2xModelType mMode;
2025-09-07 21:28:26 +09:00
std::shared_ptr<caffe::Net<float>> mNet;
int mModelScale; // <20><><EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD><EFBFBD>ΏۂƂ<DB82><C682><EFBFBD><EFBFBD>g<EFBFBD>
int mInnerScale; // <20>l<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ŋg<C58A><EFBFBD><E582B3><EFBFBD><EFBFBD><EFBFBD>{<7B><>
int mNetOffset; // <20>l<EFBFBD>b<EFBFBD>g<EFBFBD>ɓ<EFBFBD><C993>͂<EFBFBD><CD82><EFBFBD><EFBFBD>Ƃǂꂭ<C782><EFBFBD><E782A2><EFBFBD><EFBFBD><EFBFBD>
int mInputPlane; // <20>l<EFBFBD>b<EFBFBD>g<EFBFBD>ւ̓<D682><CC93>̓`<60><><EFBFBD><EFBFBD><EFBFBD>l<EFBFBD><6C><EFBFBD><EFBFBD>
2016-07-03 17:13:02 +09:00
bool mHasNoiseScaleModel;
private:
2025-09-07 21:28:26 +09:00
void LoadParamFromInfo(const Waifu2x::eWaifu2xModelType mode, const Waifu2x::stInfo& info);
Waifu2x::eWaifu2xError LoadParameterFromJson(const std::filesystem::path& model_path, const std::filesystem::path& param_path
, const std::filesystem::path& modelbin_path, const std::filesystem::path& caffemodel_path, const std::string& process);
Waifu2x::eWaifu2xError SetParameter(caffe::NetParameter& param, const std::string& process) const;
public:
cNet();
~cNet();
2025-09-07 21:28:26 +09:00
static Waifu2x::eWaifu2xError GetInfo(const std::filesystem::path& info_path, Waifu2x::stInfo& info);
2016-07-03 17:13:02 +09:00
2025-09-07 21:28:26 +09:00
Waifu2x::eWaifu2xError ConstractNet(const Waifu2x::eWaifu2xModelType mode, const std::filesystem::path& model_path, const std::filesystem::path& param_path, const Waifu2x::stInfo& info, const std::string& process);
int GetInputPlane() const;
int GetInnerScale() const;
int GetNetOffset() const;
int GetScale() const;
int GetInputMemorySize(const int crop_w, const int crop_h, const int outer_padding, const int batch_size) const;
int GetOutputMemorySize(const int crop_w, const int crop_h, const int outer_padding, const int batch_size) const;
2025-09-07 21:28:26 +09:00
Waifu2x::eWaifu2xError ReconstructImage(const bool UseTTA, const int crop_w, const int crop_h, const int outer_padding, const int batch_size, float* outputBlockBuf, const cv::Mat& inMat, cv::Mat& outMat);
2025-09-07 21:28:26 +09:00
static std::string GetModelName(const std::filesystem::path& info_path);
};