その1の続きです
ついでにバーコードの読み込みを追加してみます。
バーコード読み込みの追加
その1で作成したc++にバーコード読み込みの処理を追加します。
ヘッダー
UFUNCTION(BlueprintCallable)
static FString ReadBarcode(const FString Path);
CPP
/*
* バーコードの読み込み
* @param Path QRコード画像のパス
* @return QRコードの文字列
*/
FString UOpenCVLibrary::ReadBarcode(const FString Path)
{
// ファイルチェック
if (std::filesystem::is_regular_file(TCHAR_TO_UTF8(*Path))) {
// パスから読み込み
const cv::Mat input_Image = cv::imread(TCHAR_TO_UTF8(*Path), cv::IMREAD_ANYCOLOR);
// デコーダー
cv::barcode::BarcodeDetector detecter;
// 各種情報取得用
std::vector< std::string > decode_info;
std::vector<cv::barcode::BarcodeType> decoded_type;
std::vector<cv::Point> corners;
// デコード
detecter.detectAndDecode(input_Image, decode_info, decoded_type, corners);
return decode_info.empty() ? FString() : decode_info[0].c_str();
}
return FString();
}
あとはQRコードの時と同じように画像をパスで読ませれば、バーコードの文字列が表示されるはずです。
OpenCVのバーコードはJanコード(Ean-8,13 UPC-E,A)しか読めませんのでご注意ください。
コメント