خواندن تصویر در OpenCV از مسیر یونیکد

خواندن تصویر در OpenCV از مسیر یونیکد

5/5 - (1 امتیاز)

How to use cv::imread for non-ASCII file names?

چگونه از imread برای نام فایلهای غیراسکی استفاده کنیم؟

یکی از مشکلات نسخه های فعلی OpenCV این است که امکان خواندن از مسیر یونیکد وجود ندارد و اگر مثلا در مسیر فایل یا نام فایل، حروف فارسی وجود داشته باشد، امکان خواندن تصویر وجود ندارد. راه حلی که من استفاده کردم و جواب می دهد قطعه کد زیر است که ابتدا فایل را به صورت یک فایل باینری توسط توابع استاندارد C++ می خوانیم سپس با تابع imdecode بافر حافظه را تبدیل به cv::Mat می کنیم:

cv::Mat ReadImage(const wchar_t* filename)
{
    FILE* fp = _wfopen(filename, L"rb");
    if (!fp)
    {
        return Mat::zeros(۱, ۱, CV_8U);
    }
    fseek(fp, ۰, SEEK_END);
    long sz = ftell(fp);
    char* buf = new char[sz];
    fseek(fp, ۰, SEEK_SET);
    long n = fread(buf, ۱, sz, fp);
    _InputArray arr(buf, sz);
    Mat img = imdecode(arr, CV_LOAD_IMAGE_COLOR);
    delete[] buf;
    fclose(fp);
    return img;
}
شاید به این مقاله هم علاقه داشته باشی
نصب دوربین مداربسته : راهنمای جامع و کاربردی

آی پلاک

نرم افزار پلاک خوان با قابلیت ثبت لحظه ای پلاک خودرو ها، جستجو و گزارشگیری و کنترل هوشمند راهبند و گیت

دوربین پلاک خوان
SH-D1232R

دوربین پلاک خوان تحت شبکه
مناسب برای جاده ها و پارکینگ

دوربین پلاک خوان
SH-D1531P

دوربین پلاک خوان تحت شبکه
مناسب برای پارکینگ ها

دوربین پلاک خوان
SH-CP1130101-M

دوربین پلاک خوان تحت شبکه
مناسب برای جاده ها و پارکینگ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دانلود دمو رایگان آی پلاک

به دنبال پلاک خوان هستید؟