پایتون و opencv

saalek110

Well-Known Member
حالا باید در مورد opencv تحقیق کنم ببینم چطوری نصب میشه؟... آیا روی گوشی میشه نصب کرد؟....
با چه زبانی نوشته شده؟ در چه محیط هایی قابل استفاده است؟
 

saalek110

Well-Known Member
کلی فیلم انگلیسی در یوتیوب هست در مورد کدنویسی opencv ....
وقت کردید نگاه کنید.

دنبال فیلم فارسی هنوز نرفتم... به تدریج منابع معرفی می کنم.
 

saalek110

Well-Known Member
بیست فیلم جناب علیرضا اخوان پور را داریم
با صدا و سیمای عالی....
در یوتیوب
.
از سایت مکتب خونه دات org
سلام می کنم خدمت ایشون و بابت فیلمها ازشون تشکر می کنم.
من خیلی لذت بردم از مطالب.


فیلم اول و دوم ۷ دقیقه.
در فیلم پنجم می رسیم به opencv ولی فیلمهای اول را گوش کنید چون مفاهیم خوبی بهتون منتقل می کند و دید بهتون می دهد.

در فیلم پنجم نکات کدنویسی پایه و جالب خوبی بهتون یاد می دهد.

در فیلم ششم ، یک عکس را خاکستری می کنیم و یک سری کارهای دیگر.


youtu.be/_yf9n8Fj9ZA?si=3bItC7SRMHK9mGDP




یک سری به سایتشان زدم حین گوش دادن به مطلب. دوره های خریدنی دیده می شود. قیمت هایش بالا نیست.
فعلا همین فیلم ها که خیلی کمک کرد.
 
آخرین ویرایش:

saalek110

Well-Known Member
مجموعه آموزش دوم:
کانال (( حالا یا هیچ وقت))
فارسی ، هشت ویدئو...

youtu.be/0DtF1tTwINo?si=a3NR43tQaZjPhTNp
 
آخرین ویرایش:

saalek110

Well-Known Member
شما به تماشای ویدیوی "آموزش پردازش تصویر opencv پایتون 4 - خواندن و ذخیره عکس" در آپارات دعوت شده اید.
آپارات - سرویس اشتراک ویدیو

کارهای اولیه با عکس از آقای علی بیگدلی
فیلم پست قبل هم از ایشان بود.
 

saalek110

Well-Known Member

تاریخچه OpenCV​



به طور رسمی در سال 1999 راه اندازی شد، پروژه OpenCV در ابتدا ابتکار تحقیقات Intel برای پیشبرد برنامه های فشرده پردازنده، بخشی از یک سری پروژه ها از جمله ردیابی اشعه در real-time و دیواره نمایشگر سه بعدی بود. مشارکت کنندگان اصلی این پروژه شامل تعدادی از کارشناسان بهینه سازی در اینتل روسیه و همچنین تیم کتابخانه عملکرد اینتل بودند. در ابتدا، اهداف این پروژه به شرح زیر بود:



  • تحقیقات بینایی با ارائه نه تنها کد باز و همچنین بهینه شده برای زیرساخت های بینایی اساسی؛ دیگر نمی توان چرخ را اختراع کرد.
  • دانش بینایی را با فراهم کردن زیر ساخت مشترکی که توسعه دهندگان می توانند بر آن بنا کنند، توزیع کنند، تا خواندن کد آسان تر و قابل انتقال باشد.
  • برنامه های تجاری مبتنی بر بینایی را با تهیه کد قابل حمل و بهینه سازی شده به صورت رایگان در دسترس قرار دهید، با مجوزی که نیازی به کدنویسی نداشته باشد یا خودش رایگان نباشد.
اولین نسخه آلفا از OpenCV در سال 2000 در کنفرانس IEEE در مورد بینایی رایانه‌ای و تشخیص الگو در دسترس عموم قرار گرفت. اولین نسخه 1.0 در سال 2006 منتشر شد. نسخه 1.1 اکتبر 2008 منتشر شد. دومین نسخه بزرگ OpenCV در اکتبر 2009 بود. OpenCV 2 شامل تغییرات اساسی در رابط ++C است که هدف آن ساده تر بودن، الگوهای ایمن تر، عملکردهای جدید و اجرای بهتر برای موجود از نظر عملکرد است. انتشار رسمی اکنون هر شش ماه رخ می دهد و اکنون توسعه توسط تیم مستقل روسی با حمایت شرکت های تجاری انجام می شود. در آگوست 2012، پشتیبانی از OpenCV توسط بنیاد غیرانتفاعی OpenCV.org که سایت توسعه دهنده و کاربر را حفظ می کند، به دست آمد. در ماه مه سال 2016، اینتل توافق نامه ای برای به دست آوردن Itseez، توسعه دهنده برجسته OpenCV امضا کرد.



ویژگی های OpenCV​



OpenCV در حال حاضر به طور گسترده ای برای توسعه پردازش تصویر پیشرفته و برنامه های کاربردی Computer Vision استفاده می شود. این ابزار برای دانش آموزان، مهندسان و محققان در گوشه و کنار جهان بوده است.



کاربرد OpenCV​



OpenCV برای تأسیس زیرساخت های مشترک برای برنامه های بینایی کامپیوتر و تسریع در استفاده از ادراک دستگاه در محصولات تجاری ساخته شده است. این کتابخانه دارای بیش از 2500 الگوریتم بهینه سازی شده است، که شامل مجموعه ای کامل از الگوریتم های رایانه ای کلاسیک و پیشرفته و یادگیری ماشین است. از این الگوریتم ها می توان برای تشخیص و شناسایی چهره ها، شناسایی اشیاء، طبقه بندی اقدامات انسانی در فیلم ها، ردیابی حرکات دوربین، ردیابی اجسام در حال حرکت، استخراج مدل های سه بعدی اشیاء، تولید ابرهای سه بعدی از دوربین های استریو، تصاویر را در کنار هم برای تولید وضوح بالا استفاده کرد. تصویر صحنه کامل، یافتن تصاویر مشابه از پایگاه داده تصویر، حذف چشم قرمز از تصاویر گرفته شده با استفاده از فلاش، دنبال کردن حرکات چشم، تشخیص مناظر و ایجاد نشانگر برای پوشش آن با واقعیت افزوده و غیره. OpenCV بیش از 47 هزار نفر، جامعه کاربر دارد و تعداد تخمینی دانلود ها بیش از 18 میلیون نفر است. این کتابخانه به طور گسترده در شرکت ها، گروه های تحقیقاتی و نهادهای دولتی استفاده می شود.



در کنار شرکت های مستقر مانند گوگل، یاهو، مایکروسافت، اینتل، IBM، سونی، هوندا، تویوتا که این کتابخانه را به کار می گیرند، بسیاری از استارتاپ ها مانند Appled Minds ،VideoSurf و Zeitera وجود دارند که از OpenCV استفاده گسترده می کنند. استقرار OpenCV طیف وسیعی از بخیه دادن تصاویر Streetview به هم، نظارت بر تجهیزات معدن در چین، کمک به روبات ها برای پیمایش و برداشتن اشیاء در گاراژ Willow، کشف استخرهای غرق در حوادث در اروپا، اجرای هنرهای تعاملی در اسپانیا و نیویورک، در حال بررسی باند فرودگاه برای زباله در ترکیه، برچسب های موجود در کارخانه ها در سراسر جهان برای شناسایی سریع صورت در ژاپن هستند.



زبان برنامه نویسی OpenCV​



OpenCV به زبان C نوشته شده است و رابط اصلی آن در C است، اما هنوز هم یک رابط C قدیمی اما جامع است. ارتباطات در پایتون، جاوا و MATLAB / OCTAVE وجود دارد. API برای این واسط ها را می توان در مستندات آنلاین یافت. همچنین به زبان های دیگر مانند سی شارپ ،پرل ،هاسکل و روبی برای تشویق مخاطبان گسترده تر ساخته شده اند.



هم اکنون همه پیشرفت ها و الگوریتم های جدید OpenCV در رابط C توسعه یافته اند. دارای رابط های C++ ،Python ،Java و متلب است و از Windows ،Linux ،Android و Mac OS پشتیبانی می کند. OpenCV بیشتر متمایل به برنامه های بینایی در real-time است و در صورت وجود از دستورالعمل های MMX و SSE استفاده می کند. رابط های کاملاً برجسته CUDA و OpenCL هم اکنون فعالانه در حال توسعه هستند. بیش از 500 الگوریتم و حدود 10 برابر بیشتر عملکرد وجود دارد که آن الگوریتم ها را تشکیل یا پشتیبانی می کند. OpenCV بصورت محلی با زبان ++C نوشته شده است و دارای رابط کارآمد است که یکپارچه با ظروف STL کار می کند.



OpenCV با پایتون​



OpenCV-Python کتابخانه ای از اتصالات پایتون است که برای حل مشکلات بینایی رایانه طراحی شده است. پایتون زبان برنامه نویسی همه منظوره است که توسط Guido van Rossum آغاز شده است و خیلی سریع، به دلیل سادگی و خوانایی کد، بسیار محبوب شد. این قابلیت برنامه نویس را قادر می سازد ایده های خود را در خط کد کمتر بدون کاهش خوانایی بیان کند. در مقایسه با زبان هایی مانند C++ / C، پایتون کندتر است. گفته می شود، پایتون را می توان به راحتی با ++C / C، که به ما امکان نوشتن کد فشرده محاسبه شده در ++C / C و ایجاد بسته های پایتون را می دهد که می تواند به عنوان ماژول های پایتون ایجاد شود، فراهم کرد. این دو مزیت به ما می دهد: اول، کد به همان سرعت کد اصلی ++C / C است و دوم، کدگذاری در Python از C++ / C آسان تر است. OpenCV-Python بسته بندی Python برای اجرای اصلی ++OpenCV C است.



OpenCV-Python از Numpy استفاده می کند، که کتابخانه بسیار بهینه برای عملیات عددی با نحوی به سبک MATLAB است. تمام ساختارهای آرایه OpenCV به آرایه های Numpy تبدیل می شوند. این امر همچنین باعث می شود ادغام با كتابخانه های دیگر كه از Numpy مانند SciPy و Matplotlib استفاده می كنند، آسانتر شود. OpenCV مجموعه جدیدی از آموزش را ارائه می دهد که شما را از طریق عملکردهای مختلف موجود در OpenCV-Python راهنمایی می کند. این راهنما عمدتاً بر روی نسخه OpenCV 3.x متمرکز شده است.



دانش قبلی درباره Python و Numpy توصیه می شود. مهارت با Numpy به منظور نوشتن کد بهینه شده با استفاده از OpenCV-Python ضروری است. این آموزش ابتدا توسط Abid Rahman K. به عنوان بخشی از برنامه Google Summer of Code 2013 تحت هدایت الكساندر موردوینتسف آغاز شد.


 

saalek110

Well-Known Member

مثال OpenCV​



مثال برای خواندن، نمایش و ذخیره تصویر در Open CV



مراحل:
  • بارگیری تصویر با استفاده از ()Imread.
  • نمایش تصویر با استفاده از ()namesWindow و ()imshow.
  • با استفاده از imwrite، تصویر را ذخیره کنید.
  • منتظر فشار دادن دکمه صفحه کلید با استفاده از ()waitKey باشید.
C++:
#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <iostream>

using namespace cv;

using namespace std;


int main( )

{
Mat image;

// LOAD image

image = imread("image1.jpg", CV_LOAD_IMAGE_COLOR);   // Read the file "image.jpg".

//This file "image.jpg" should be in the project folder.

//Else provide full address : "D:/images/image.jpg"



if(! image.data )  // Check for invalid input

       {

cout <<  "Could not open or find the image" << std::endl ;

return -1;

       }

//DISPLAY image

namedWindow( "window", CV_WINDOW_AUTOSIZE ); // Create a window for display.

imshow( "window", image ); // Show our image inside it.

//SAVE image

imwrite("result.jpg",image);// it will store the image in name "result.jpg"


       waitKey(0);                       // Wait for a keystroke in the window

return 0;

}



سالک: کد بالا ، فکر می کنم به زبان سی است ، ولی توابع opencv همان است که در پایتون استفاده میشد...
این فقط یک مثال است. کاری ندارم در کدام محیط باید اجرا شود. مثلا ویژوال استودیو. فقط خواستم توابع opencv مرور شود.

در فیلمهای آقای اخوان همه اینها به زبان پایتون کار شده بود.
در اون ۸ فیلم که متعلق به (( حالا یا هیچ وقت )) بود هم احتمالا اینها کار شده.
من در این پست خواستم در تاپیک کدهایش هم موجود باشد.البته این کد به زبان سی است ولی توابع opencv فرقی ندارد.

در زبان سی ، آخر هر خط ، یک سمی کلون داریم ولی در پایتون نداریم و فرقهای دیگه...
در زیر یک برنامه به زبان پایتون نقل می کنم:




Python:
import cv2
 

img = cv2.imread("geeksforgeeks.png", cv2.IMREAD_COLOR)
 

cv2.imshow("image", img)
 

cv2.waitKey(0)
 

cv2.destroyAllWindows()
از سایت زیر، البته کامنت هایش را من حذف کردم تا خلوت بشه:

توابع imread و imshow را مثل برنامه سی بالا داره...
waitkey هم داره..
 
آخرین ویرایش:

saalek110

Well-Known Member
youtu.be/De_G2yValkQ?si=BU7wkvVi06mCt6Ln

فیلمهای جناب اسلامی....
 
آخرین ویرایش:

saalek110

Well-Known Member

دانلود کتاب آموزش بینایی کامپیوتر OpenCV 5 با پایتون​



  • عنوان کتاب: Learning OpenCV 5 Computer Vision with Python
  • نویسنده: Joseph Howse Joe Minichino
  • حوزه: برنامه نویسی پایتون, OpenCV
  • سال انتشار: 2022
  • تعداد صفحه: 93
  • زبان اصلی: انگلیسی
  • نوع فایل: pdf
  • حجم فایل: 19.25 مگابایت.
 

پیوست ها

  • Learning-OpenCV-5-Computer-Vision-with-Python-Fourth-Edition-by-Joseph-Howse-Joe-Minichino_bib...pdf
    18.9 مگایابت · بازدیدها: 0

saalek110

Well-Known Member

یک سری از آموزش های آقای اخوان در سایت فارسی بالا هست.
آموزش های آقای اخوان فیلم بود ولی این متن است و میشه کپی گرفت از کدها.
 

saalek110

Well-Known Member

این آموزش هم هست.
 

saalek110

Well-Known Member

تشخیص چهره با استفاده از OpenCV در پایتون​


 

جدیدترین ارسال ها

بالا