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

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

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;
}
شاید به این مقاله هم علاقه داشته باشی
آموزش OpenCV - قسمت دوم : انسان چگونه میبیند؟
تصویر شرکت شهاب

شرکت شهاب

شرکت شهاب با تکیه بر تیمی متخصص در حوزه های پردازش تصویر، هوش مصنوعی و یادگیری عمیق، تجربه گسترده ای در اجرای پروژه های نظارت تصویری و کنترل تردد دارد و محتوای وب سایت آن بر پایه دانش عملی، تحقیق و توسعه مستمر تهیه شده است. شهاب با برخورداری از گواهینامه های معتبر، حضور فعال در رویدادهای علمی و ارائه محصولات نوآورانه ای همچون نرم افزار پلاک خوان آی پلاک ، سامانه تشخیص چهره روبینا و انواع دوربین های پلاک خوان، اعتبار خود را در صنعت تثبیت کرده است. این شرکت با رعایت اصول شفافیت، امنیت، دقت علمی و مسئولیت پذیری در پشتیبانی، تلاش می کند اعتماد کاربران را جلب کرده و محتوایی کاربردی، به روز و مبتنی بر استانداردهای بین المللی ارائه دهد.

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

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

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

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