Skip to content

Commit

Permalink
Create 02.StartWithImage.md
Browse files Browse the repository at this point in the history
  • Loading branch information
opaip authored Jul 22, 2024
1 parent 824c943 commit 9e4f08c
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions src/02.StartWithImage.md
Original file line number Diff line number Diff line change
@@ -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)
```



0 comments on commit 9e4f08c

Please sign in to comment.