بارمان ویژنcropped-BARMAN-VISION-ICO-LOGO.pngبارمان ویژنبارمان ویژن
  • آموزشگاه بینایی
  • پروژه‌ها
  • تجهیزات بینایی ماشین
    • دوربین اسکن خطی
    • دوربین مینیاتوری
      • دوربین ‌GigE مینیاتوری
      • دوربین USB3 مینیاتوری
      • دوربین ‌USB2 مینیاتوری
    • دوربین ‌پزشکی
  • راهکار بینایی
  • بلاگ
✕

کتابخانه OpenCV چیست؟ ( معرفی + کاربردها)

  • صفحه اصلی
  • آموزش پردازش تصویر ‌‌OpenCV
  • کتابخانه OpenCV چیست؟ ( معرفی + کاربردها)
what-is-digtal-image-processing
مبانی پردازش تصویر دیجیتال
۱۵ اردیبهشت ۱۴۰۰
face detection
تشخیص چهره توسط پایتون با کمتر از ۲۵ خط کد
۰۳ مرداد ۱۴۰۰
منتشر شده توسط محمد کیانی در ۰۲ مرداد ۱۴۰۰
موضوعات
  • ‌‌OpenCV
  • نرم‌افزار پردازش تصویر
برچسب‌ها
  • image processing
  • industrial image processing
  • opencv
  • what is opencv
  • دانلود OpenCV
  • کتابخانه اپن سی وی
OpenCV features

فهرست محتوا

Toggle
  • راهنمای جامع OpenCV : کتابخانه ای که دنیای هوش مصنوعی را متحول کرد
    • OpenCV چیست؟ نگاهی فراتر از یک کتابخانه ساده (و چرا باید برایتان مهم باشد)
    • معرفی OpenCV
      • تاریخچه‌ای کوتاه درباره OpenCV:
      • کاربردهای OpenCV:
      • توابع OpenCV
    • جعبه ابزار جادویی OpenCV: قابلیتی که هر توسعه‌دهنده هوش مصنوعی باید بشناسد
        • ۱. تشخیص و تطبیق الگو (Template Matching)
        • ۲. تشخیص چهره و نقاط کلیدی صورت (Face & Landmark Detection)
        • ۳. ردیابی اشیا در حرکت (Object Tracking)
        • ۴. آشکارسازی لبه‌ها و خطوط (Canny Edge Detection)
        • ۵. استخراج کانتور و شکل‌شناسی (Contours & Morphology)
        • ۶. تصحیح پرسپکتیو و تغییر شکل هندسی (Warp Perspective)
        • ۷. پردازش ویدئو و حذف پس‌زمینه (Background Subtraction)
        • ۸. عمق‌سنجی و دید استریو (Stereo Vision & Depth Estimation)
        • ۹. تشخیص حرکت و شار نوری (Optical Flow)
        • ۱۰. اینتگریشن با شبکه‌های عصبی (DNN Module)
    • پردازش تصویر
      • تصویر دیجیتال
      • چگونه کامپیوتر تصویر را می‌خواند؟
    • قابلیت های ویژه کتابخانه OpenCV
        • سؤالات متداول

راهنمای جامع OpenCV : کتابخانه ای که دنیای هوش مصنوعی را متحول کرد

OpenCV چیست؟ نگاهی فراتر از یک کتابخانه ساده (و چرا باید برایتان مهم باشد)

برای پاسخ به سوال اینکه OpenCV چیست؟ اجازه دهید ابتدا بینایی کامپیوتر را مورد بررسی قرار دهیم. بینایی کامپیوتر فرآیندی است که از طریق آن ما می‌توانیم توسط کامپیوتر درکی از تصاویر و فیلم‌ها داشته باشیم. اینکه آن‌ها چگونه ذخیره‌شده‌اند و ما چطور می‌توانیم داده‌ها را دریافت و آن‌ها را دست‌کاری کنیم. بینایی کامپیوتر اساس و یا به‌صورت گسترده‌ای در هوش مصنوعی مورداستفاده قرار می‌گیرد. بینایی کامپیوتر نقش به سزایی در خودروهای خودران، روباتیک و همچنین در برنامه‌های اصلاح تصویر دارد. یکی از کتابخانه‌های مورداستفاده در حوزه بینایی کامپیوتر OpenCV است.

معرفی OpenCV

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

نسخه ۱.۰ از OpenCV تحت گواهی BSD صادر شد که برای هر دو کاربرد دانشگاهی و تجاری رایگان است. OpenCV دارای پشتیبانی از زبان‌های C++، C، پایتون و جاوا اسکریپت است و از سیستم‌عامل‌های ویندوز، لینوکس، مک، iOS و اندروید پشتیبانی می‌کند. OpenCV طراحی‌شده است تا تمرکز اصلی آن بر روی برنامه‌های به لحظه (بلادرنگ) و پردازش مؤثر باشد. همه‌چیز تحت زبان C/C++ بهینه‌شده برای برخورداری از پردازش چندهسته‌ای است.

Isfahan features

از تصویر اصلی بالا، داده‌های بسیاری می‌تواند استخراج نمود. مانند تعداد پا، نوع مجسمه، چهره و …

تاریخچه‌ای کوتاه درباره OpenCV:

OpenCV در سال ۱۹۹۹ توسط گری برادسکی در اینتل متولد شد. نخستین نسخه OpenCV در سال ۲۰۰۰ منتشر شد. وادیم به گری برای مدیریت تیم روسی نرم‌افزار OpenCV ملحق شد. OpenCV در سال ۲۰۰۵ در پروژه خودرو Stanley به کار برده شد؛ جایی که توانست جایزه رقابت DARPA Grand را از آن خود کند. سپس توسعه OpenCV تحت نظر ویلو گاراج و گری برادسکی و وادیم پیساروسکی ادامه یافت. هم‌اکنون OpenCV الگوریتم‌های مختلفی در حوزه بینایی کامپیوتر و یادگیری ماشین پشتیبانی می‌کند و روزبه‌روز بر گستره آن افزوده می‌شود.

کاربردهای OpenCV:

مسئله‌های زیادی است که می‌توان آن‌ها را توسط OpenCV حل نمود. بعضی از آن‌ها در زیر فهرست شده‌اند:

  • تشخیص چهره
  • بازرسی خودکار و نظارتی
  • شمارش افراد
  • شمارش خودرو در بزرگراه به همراه سرعت سنجی
  • تشخیص عیوب محصول در خطوط تولید
  • هدایت روبات
  • تشخیص اشیا
  • تجزیه‌وتحلیل تصاویر پزشکی
  • تشخیص تبلیغات تلویزیونی
  • و …

توابع OpenCV

  • Image/video I/O, processing, display (core, imgproc, highgui)
  • Object/feature detection (objdetect, features2d, nonfree)
  • Geometry-based monocular or stereo computer vision (calib3d, stitching, videostab)
  • Computational photography (photo, video, superres)
  • Machine learning & clustering (ml, flann)
  • CUDA acceleration (gpu)

جعبه ابزار جادویی OpenCV: قابلیتی که هر توسعه‌دهنده هوش مصنوعی باید بشناسد

OpenCV فقط یک کتابخانه پردازش تصویر نیست؛ یک ارتش کامل از الگوریتم‌های ریاضی و هوش مصنوعی است. از فیلترهای ساده اینستاگرامی گرفته تا دیدن در تاریکی مطلق توسط دوربین‌های حرارتی. در این بخش، ۱۰ ابرقدرت OpenCV را معرفی می‌کنیم که شما را از یک کدنویس ساده به یک متخصص بینایی کامپیوتر تبدیل می‌کند.

۱. تشخیص و تطبیق الگو (Template Matching)

ساده‌ترین شکل بینایی ماشین! تصور کنید یک ذره‌بین دارید و به کامپیوتر می‌گویید یک تصویر کوچک (مثلاً لوگوی یک برند) را در یک تصویر بزرگ (مثلاً عکس یک مسابقه فوتبال) پیدا کند. OpenCV با توابعی مثل این کار را در کسری از ثانیه انجام می‌دهد.

کاربرد شگفت‌انگیز:

    • کنترل کیفیت در کارخانه: پیدا کردن یک پیچ معیوب روی برد الکترونیکی.

    • ربات‌های انبارداری: پیدا کردن بارکد یا کیوآر کد روی بسته‌ها برای مرتب‌سازی خودکار.

۲. تشخیص چهره و نقاط کلیدی صورت (Face & Landmark Detection)

این فقط پیدا کردن صورت نیست، بلکه درک آن است! OpenCV با استفاده از Haar Cascades (روش کلاسیک و سریع) یا مدل‌های Deep Learning (دقیق)، می‌تواند ۶۸ نقطه کلیدی مثل نوک بینی، گوشه چشم‌ها و خط لب‌ها را شناسایی کند.

کاربرد شگفت‌انگیز:

    • خواب‌آلودگی راننده: با ردیابی پلک‌ها، اگر چشم‌ها بسته بمانند، آژیر خطر به صدا در می‌آید.

    • فیلترهای اسنپ‌چت: عینک یا گوش خرگوشی که دقیقاً روی صورت می‌چسبد.

    • تست آرایش مجازی: ماتیک زدن به‌صورت دیجیتالی در فروشگاه‌های آنلاین.

۳. ردیابی اشیا در حرکت (Object Tracking)

تفاوتش با تشخیص چهره چیست؟ تشخیص می‌گوید «این یک توپ است» (Single Frame). اما ردیابی می‌گوید «این همان توپی است که یک ثانیه پیش اینجا بود» (Sequence of Frames). الگوریتم‌های KCF، MIL و CSRT در OpenCV، سوژه را حتی اگر پشت یک مانع پنهان شود، تعقیب می‌کنند.

کاربرد شگفت‌انگیز:

    • سیستم‌های نظارتی هوشمند: دنبال کردن یک فرد مشکوک در بین دوربین‌های مختلف یک فروشگاه.

    • تحلیل ورزشی: دنبال کردن یک بازیکن خاص و رسم نقشه حرارتی حرکت او در زمین.

۴. آشکارسازی لبه‌ها و خطوط (Canny Edge Detection)

هنر تبدیل عکس به یک نقاشی مدادی! الگوریتم Canny در OpenCV، پیکسل‌هایی که شدت روشنایی‌شان ناگهان تغییر می‌کند را پیدا می‌کند و مرز بین اشیا را ترسیم می‌کند. نتیجه یک تصویر سیاه و سفید زیبا و پر از خطوط است.

کاربرد شگفت‌انگیز:

      • خودروهای خودران: تشخیص خطوط خیابان (Lane Detection) حیاتی‌ترین وظیفه است. تنها چیزهایی که مهم هستند، لبه‌های جاده‌اند.

      • اسکنرهای پزشکی: پیدا کردن مرز یک تومور در تصاویر MRI.

      • طراحی صنعتی: اسکن یک خودکار و تبدیل خودکار عکس آن به نقشه اتوکد (CAD).

۵. استخراج کانتور و شکل‌شناسی (Contours & Morphology)

وقتی لبه‌ها را پیدا کردیم، حالا می‌خواهیم «شکل‌های بسته» را جدا کنیم. OpenCV با تابع ، یک لکه سبز را از پس‌زمینه جدا می‌کند و محیط، مساحت و مرکز هندسی آن را به ما می‌گوید.

کاربرد شگفت‌انگیز:

    • شمارش سلول‌های خونی: جدا کردن گلبول‌های قرمز از هم.

    • تشخیص پول تقلبی: بررسی دقیق شکل و اندازه هولوگرام‌های روی اسکناس.

    • واقعیت افزوده (AR): تشخیص سطح میز برای قرار دادن یک شیء سه‌بعدی مجازی.

۶. تصحیح پرسپکتیو و تغییر شکل هندسی (Warp Perspective)

یا «جادوی اسکنر جیبی!» حتماً از یک سند با زاویه کج عکس گرفته‌اید. OpenCV می‌تواند با پیدا کردن ۴ گوشه مستطیل، تصویر را از نمای اُریب به نمای «روبه‌رو» تبدیل کند. انگار که با یک اسکنر رومیزی کار کرده‌اید.

کاربرد شگفت‌انگیز:

    • اسکنر دوربین موبایل (CamScanner): برنامه‌هایی که از سند عکس می‌گیرند و آن را صاف می‌کنند.

    • کمک داور ویدئویی (VAR): تشخیص آفساید با تبدیل خطوط زمین فوتبال به یک شبکه مسطح ریاضی.

۷. پردازش ویدئو و حذف پس‌زمینه (Background Subtraction)

اگر دوربین ثابت باشد، OpenCV می‌تواند «تصویر پس‌زمینه خالی» را حفظ کند و هر چیزی که جدیداً وارد صحنه شده را هایلایت نماید. این کار با الگوریتم‌های MOG2 و KNN انجام می‌شود.

کاربرد شگفت‌انگیز:

    • حذف گرین اسکرین بدون گرین اسکرین: در زوم و گوگل میت، لازم نیست پشت سرتان پارچه سبز باشد؛ OpenCV می‌تواند شما را از اتاق شلوغتان جدا کند.

    • تشخیص نفوذ: حصارکشی مجازی دور یک ملک که با ورود یک حیوان یا انسان هشدار بدهد.

۸. عمق‌سنجی و دید استریو (Stereo Vision & Depth Estimation)

چشم چپ و راست انسان، هرکدام یک تصویر می‌بینند و مغز ما «اختلاف منظر» (Disparity) را محاسبه می‌کند. OpenCV همین کار را با دو دوربین انجام می‌دهد و یک نقشه عمق (نقشه سه‌بعدی) تولید می‌کند. اشیای نزدیک سفیدتر و اشیای دور سیاه‌تر دیده می‌شوند.

کاربرد شگفت‌انگیز:

    • پهپادهای خودران: جلوگیری از برخورد با موانعی که «لیزری» دیده نمی‌شوند (مثل کابل برق).

    • چاپ سه‌بعدی: اسکن یک مجسمه واقعی و تبدیل آن به فایل stl.

۹. تشخیص حرکت و شار نوری (Optical Flow)

ردیابی «بردارهای سرعت» تک‌تک پیکسل‌ها. بر خلاف ردیابی اشیا که یک جعبه رسم می‌کند، Optical Flow مسیر حرکت هر قطره باران روی شیشه ماشین را دنبال می‌کند. جادوی این قابلیت در تشخیص «جهت حرکت» است.

کاربرد شگفت‌انگیز:

    • فشرده‌سازی ویدئو (کدک‌ها): فقط پیکسل‌هایی که حرکت کرده‌اند دوباره ذخیره می‌شوند.

    • تشخیص ژست حرکتی: عقب و جلو بردن دست برای کم و زیاد کردن صدای تلویزیون بدون لمس.

۱۰. اینتگریشن با شبکه‌های عصبی (DNN Module)

این قابلیت، OpenCV را از یک کتابخانه قدیمی به یک هیولای هوش مصنوعی تبدیل کرده است. شما می‌توانید مدل‌های آموزش‌دیده شده با TensorFlow، PyTorch و Caffe را مستقیماً با در OpenCV بارگذاری و اجرا کنید. این یعنی بینایی کامپیوتری کلاسیک و یادگیری عمیق در یک جا!

کاربرد شگفت‌انگیز:

    • شناسایی اشیا با YOLO در لحظه: اجرای مدل YOLOv8 در OpenCV برای دیدن «میز، لپتاپ، انسان…» در وبکم با سرعت ۶۰ فریم بر ثانیه.

    • تبدیل عکس سیاه‌سفید به رنگی: بارگذاری یک مدل Colorization و تماشای رنگ گرفتن عکس‌های قدیمی.

    • تولید تصاویر هنری: اجرای مدل‌های Neural Style Transfer برای ادغام سبک ون گوگ با عکس پروفایلتان.

پردازش تصویر

پردازش تصویر روشی برای اجرای عملیات مخصوص بر روی تصویر به‌منظور دریافت تصویر بهینه‌شده و یا استخراج اطلاعات مفید از تصویر است. اگر ما درباره اساس تعریفی پردازش تصویر صحبت کنیم. پس پردازش تصویر عبارت از آنالیز و دست‌کاری تصویر دیجیتال، مخصوصاً برای دستیابی به کیفیت بالاتر است.

تصویر دیجیتال

ازآنجایی‌که تصویر ممکن است توسط تابع دوبعدی  f(x, y) تعریف شود. جایی که x و y مختصات فضایی تصویر هستند و دامنه هر جفت نقطه  (x, y) ، شدت یا سطح خاکستری آن نقطه از تصویر نامیده می‌شود.

به‌عبارت‌دیگر یک تصویر چیزی فراتر از ماتریس دوبعدی نیست (سه‌بعدی در مورد تصاویر رنگی) که توسط توابع ریاضی f(x, y) در هر نقطه‌ای که مقدار پیکسل تصویر داده‌شده است؛ تعریف می‌گردد. مقدار پیکسل تعریف می‌کند که هر پیکسل چقدر باید روشن باشد و رنگ آن چگونه باید باشد.

پردازش تصویر اصولاً پردازش سیگنالی است که ورودی آن تصویر و خروجی آن تصویری است که طبق ویژگی‌های مخصوص مورد نیاز تصویر، مورداستفاده قرار می‌گیرد.

پردازش تصویر اصولاً شامل گام‌های زیر می‌شود:

۱.واردکردن تصویر

۲.آنالیز و دست‌کاری تصویر

۳.خروجی که می‌تواند تصویری دیگر و یا گزارشی بر مبنای آنالیز تصویر باشد

چگونه کامپیوتر تصویر را می‌خواند؟

تصویر زیر را در نظر بگیرید:

isfahan mosque

انسان‌‌ها به‌راحتی می‌توانند تصویر بالا را مورد پردازش قرار دهند و اطلاعات داخل آن را استخراج کنند. اما اگر ما از کامپیوتر بپرسیم “آیا این تصویر یک مسجد است؟” کامپیوتر نمی‌تواند هیچ‌گونه پاسخی به سؤال یادشده بر مبنای اطلاعات خود بدهد.

کامپیوتر، تصویر را با مقادیر پیکسل‌هایی بین ۰ تا ۲۵۵ فراخوانی می‌کند. برای تمام تصاویر رنگی، سه کانال رنگی اصلی قرمز، سبز و آبی وجود دارد.

برای دانلود OpenCV بر روی اینجا کلیک نمایید.

قابلیت های ویژه کتابخانه OpenCV

۱۰ قابلیت طلایی OpenCV - موشن گرافیک تعاملی

سؤالات متداول

1OpenCV چیست و چه کاربردی در بینایی کامپیوتر دارد؟

OpenCV یک کتابخانه متن‌باز و قدرتمند برای بینایی کامپیوتر، پردازش تصویر و یادگیری ماشین است. کاربردهای آن شامل تشخیص چهره، شمارش خودرو، هدایت ربات، تحلیل تصاویر پزشکی و خودروهای خودران می‌شود.

2OpenCV از چه زبان‌ها و سیستم‌عامل‌هایی پشتیبانی می‌کند؟

OpenCV از زبان‌های C++، C، پایتون و جاوااسکریپت پشتیبانی می‌کند و روی سیستم‌عامل‌های ویندوز، لینوکس، مک، iOS و اندروید قابل اجراست.

3تفاوت بینایی کامپیوتر و پردازش تصویر چیست؟
  • پردازش تصویر: ورودی و خروجی تصویر است (مثل بهبود کیفیت یا فیلتر کردن).

  • بینایی کامپیوتر: ورودی تصویر، خروجی درک و اطلاعات معنادار (مثل تشخیص شیء یا چهره) است.
    OpenCV هر دو حوزه را پوشش می‌دهد.

4چگونه کامپیوتر یک تصویر را می‌خواند؟

کامپیوتر تصویر را به صورت ماتریسی از اعداد (۰ تا ۲۵۵ برای هر پیکسل) می‌بیند. در تصاویر رنگی، سه ماتریس مجزا برای کانال‌های قرمز، سبز و آبی (RGB) وجود دارد.

5تاریخچه OpenCV از کجا شروع شد و چه افرادی آن را ساختند؟

OpenCV در سال ۱۹۹۹ توسط گری برادسکی در شرکت اینتل آغاز شد. اولین نسخه در سال ۲۰۰۰ منتشر گردید. وادیم پیساروسکی نیز به تیم پیوست. این کتابخانه در پروژه خودروی خودران Stanley (برنده جایزه DARPA در ۲۰۰۵) به کار رفت.

6چرا OpenCV برای پردازش بلادرنگ (Real-time) مناسب است؟

زیرا هسته اصلی OpenCV به زبان C/C++ بهینه‌شده نوشته شده و از پردازش چندهسته‌ای پشتیبانی می‌کند. همچنین قابلیت شتاب‌دهی با CUDA (کارت‌های گرافیک NVIDIA) را دارد.

7چه کتابخانه‌هایی معمولاً با OpenCV در پایتون یکپارچه می‌شوند؟

NumPy مهم‌ترین کتابخانه است، زیرا تصاویر در OpenCV-Python به صورت آرایه‌های NumPy ذخیره می‌شوند. همچنین از Matplotlib برای نمایش، و SciPy برای محاسبات علمی استفاده می‌شود.

اشتراک گذاری
0
محمد کیانی
محمد کیانی

مطالب مرتبط

LabVIEW Vision
۱۲ آذر ۱۴۰۰

ماژول LabVIEW Vision Development


اطلاعات بیشتر
MVTec Halcon 21.11
۱۰ آذر ۱۴۰۰

نرم‌افزار HALCON چیست؟


اطلاعات بیشتر
۳۰ مرداد ۱۴۰۰

پردازش تصویر چیست؟ آشنایی با مفاهیم، کتابخانه‌ها و کاربردها


اطلاعات بیشتر

دیدگاهتان را بنویسید لغو پاسخ

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

-- بارگیری کد امنیتی --

گروه بارمان ویژن

افتخار داریم که فعالیتمان در زمینه بینایی ماشین، از سال ۱۳۹۴ آغاز شده است. در این مدت گام‌های موفقیت را آهسته و پیوسته برداشته‌ایم و به جایگاه حاضر رسیده‌ایم. در حال حاضر به عنوان تأمین‌کننده تجهیزات، طراح و مشاور در کنار شما هستیم و به مجریان بینایی ماشین مشاوره‌های لازم داده می‌شود؛ تولیدکنندگان گرامی ایران و ارمنستان نیز از سامانه‌های بینایی ماشین ما بهره‌برده‌اند.
پردازش تصویر توسط دوربین‌های صنعتی تخصص ماست.

نوشته‌های تازه

  • دوربین مداربسته صنعتی‌ (راهنمای انتخاب 2026‌ + کاربردها)
  • مقایسه تخصصی دوربین‌های صنعتی Basler و ZDS
  • آموزش اتصال به دوربین صنعتی ZDS از طریق Python و OpenCV
  • واژگان و اصطلاحات یادگیری عمیق
  • دوربین Datalogic

ارتباط با ما

آدرس:
اصفهان، خیابان جی شرقی، ارغوانیه، بلوار دانشگاه،  دانشگاه آزاد اسلامی واحد اصفهان، مرکز رشد واحدهای فناور، واحد ۵
اطلاعات تماس:
تلفن و واتساپ
۰۳۱۳۵۰۰۲۷۷۳
۰۹۰۲۴۰۰۴۴۸۰


تمام حق و حقوق محفوظ است.