From 9e4f08ca5f1e525ac83c7e1816b821567d45762b Mon Sep 17 00:00:00 2001 From: Opaip <74834289+opaip@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:33:01 +0330 Subject: [PATCH] Create 02.StartWithImage.md --- src/02.StartWithImage.md | 69 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/02.StartWithImage.md diff --git a/src/02.StartWithImage.md b/src/02.StartWithImage.md new file mode 100644 index 0000000..a7a3341 --- /dev/null +++ b/src/02.StartWithImage.md @@ -0,0 +1,69 @@ +# شروع به کار با عکس ها + +## اهداف +* خواندن عکس از فایل +* نمایش دادن عکس در یک صفحه +* نوشتن یک عکس داخل فایل + +## کد +```python +import cv2 as cv +import sys + +img = cv.imread(cv.samples.findFile("starry_night.jpg")) + +if img is None: + sys.exit("Could not read the image.") + +cv.imshow("Display window", img) +k = cv.waitKey(0) + +if k == ord("s"): + cv.imwrite("starry_night.png", img) +``` +## توضیحات +در مرحله اول کتابخانه مورد نظر را تعریف می کنیم. +```python +import cv2 as cv +import sys +``` +حالا نوبت تحلیل کد اصلی است.در مرحله اول عکس "starry_Night.png" را از نمونه های کتابخانه می‌خوانیم. +صدا زدن cv::imread دو ورودی می‌گیرد که اولین ورودی آدرس عکس است. +ورودی دوم اختیاری است که کار مشخص کردن فرمت عکس را انجام می‌دهد. +ورودی های دوم: +* IMREAD_COLOR : عکس را در فرمت BGR 8-bit بارگذاری میکند +* IMREAD_UNCHANGED +* IMREAD_GRAYSCALE : بارگذاری عکس به صورت شدتی(سفید و سیاه) + +بعد از خوانده شدن عکس , اطلاعات در یک آبجکت cv::Mat ذخیره می‌شود. +```python +img = cv.imread(cv.samples.findFile("starry_night.jpg")) +``` +در ادامه یک تست اجرا می‌شود تا بارگذاری صحیح عکس آزموده شود. +```python +if img is None: + sys.exit("Could not read the image.") +``` +سپس عکس توسط تابع cv::imshow نمایش داده می‌شود. +این تابع 2 ورودی دارد که اولین ورودی آن عنوان پنجره ای است که عکس در آن نمایش داده می‌شود و دومین ورودی آن آبجکت cv::Mat است. +برای اینکه صفحه را تا زمانی که کاربر کلیدی را وارد کند نمایش دهیم از تابع cv::waitkey استفاده می‌کنیم. + +این تابع یک ورودی دارد که نشان دهنده مدت زمانیست که برنامه باید برای ورودی کاربر صبر کند. +ورودی تابع int است و به میلی ثانیه هستند. +صفر نشان دهنده این است که برنامه باید برای همیشه صبر کند. + +```python +cv.imshow("Display window", img) +k = cv.waitKey(0) +``` +در نهایت برنامه درصورتی که کلید s فشرده شود عکس را در یک فایل ذخیره می‌کند. +این عمل توسط تابع cv::imwrite انجام میشود که 2 ورودی دارد. +یک ورودی مسیر ذخیره فایل و ورودی دیگر یک آبجکت cv::Mat + +```python +if k == ord("s"): + cv.imwrite("starry_night.png", img) + ``` + + +