آموزش پردازش تصویر در پایتون و C++ با OpenCV - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

آموزش پردازش تصویر در پایتون و C++ با OpenCV

0 امتیاز
فصل اول شروع کار با OpenCV
 
1. خواندن، ذخیره‌کردن و نمایش ویدیو:
 
این عنوان به مدیریت ویدیوها با استفاده از کتابخانه OpenCV در پایتون اشاره دارد. با استفاده از این کتابخانه، می‌توانید ویدیوها را باز کنید، بخوانید، ذخیره کنید و نمایش دهید.
 
import cv2

# باز کردن ویدیو
cap = cv2.VideoCapture('video.mp4')

while True:
    # خواندن فریم فعلی ویدیو
    ret, frame = cap.read()
    if ret:
        # نمایش فریم در پنجره
        cv2.imshow('frame', frame)

        # اگر کلید q فشرده شود، خروج از حلقه
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# آزاد کردن منابع
cap.release()
cv2.destroyAllWindows()

 

 

فصل دوم: شروع کار با OpenCV در پایتون

سوال شده تیر 5, 1402  بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
ویرایش شده تیر 5, 1402 بوسیله ی haniye sarbazi

8 پاسخ

+1 امتیاز
2. تصاویر خاکستری (Gray Scale):
 
تصاویر خاکستری، تصاویری هستند که فقط یک کانال دارند و هر پیکسل آن با یک مقدار خاکستری نمایش داده می‌شود. در واقع، تمام کانال‌های رنگی در این تصاویر با هم برابر هستند. این عنوان به تبدیل تصاویر رنگی به تصاویر خاکستری در OpenCV با استفاده از تابع cvtColor() اشاره دارد.
 
import cv2

# خواندن تصویر
img = cv2.imread('image.jpg')

# تبدیل تصویر به حالت خاکستری
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# نمایش تصویر خاکستری
cv2.imshow('gray image', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

پاسخ داده شده تیر 5, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
+1 امتیاز
3. بریدن یک ناحیه از تصویر:
این عنوان به برش یک ناحیه خاص از تصویر در OpenCV با استفاده از تابع slicing اشاره دارد.
 
import cv2

# خواندن تصویر
img = cv2.imread('image.jpg')

# بریدن ناحیه خاصی از تصویر
cropped_img = img[100:300, 200:400]

# نمایش تصویر بریده شده
cv2.imshow('cropped image', cropped_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

پاسخ داده شده تیر 5, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
+1 امتیاز
4. فضاهای رنگی _ جداکردن و ادغام کانالهای رنگی:
این عنوان به جداسازی و ادغام کانال‌های رنگی در تصاویر در OpenCV اشاره دارد. این کار با استفاده از توابع split() و merge() در OpenCV انجام می‌شود.
 
import cv2

# خواندن تصویر
img = cv2.imread('image.jpg')

# جداسازی کانال‌های رنگی
b, g, r = cv2.split(img)

# ادغام کانال‌های رنگی
merged_img = cv2.merge((r, g, b))

# نمایش تصویر ادغام شده
cv2.imshow('merged image', merged_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

پاسخ داده شده تیر 5, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
+1 امتیاز
5. فضاهای رنگی _ تغییر مقادیر هر کانال:
این عنوان به تغییر مقادیر هر کانال رنگی در تصاویر در OpenCV اشاره دارد. برای این کار، می‌توان از توابع cvtColor() و split() و merge() استفاده کرد.
 
import cv2

# خواندن تصویر
img = cv2.imread('image.jpg')

# تغییر مقدار کانال قرمز
img[:, :, 2] = 255

# نمایش تصویر با تغییر کانال قرمز
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

پاسخ داده شده تیر 5, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
+1 امتیاز
6. فضاهای رنگی – فضای رنگی HSV:
این عنوان به فضای رنگی HSV (Hue، Saturation، Value) در OpenCV اشاره دارد. در این فضا، رنگ‌ها بر اساس سه خصوصیت اصلی، یعنی رنگ اصلی، شدت رنگ و روشنایی، توصیف می‌شوند.
 
import cv2

# خواندن تصویر
img = cv2.imread('image.jpg')

# تبدیل تصویر به فضای رنگی HSV
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# نمایش تصویر در فضایرنگی HSV
cv2.imshow('HSV image', hsv_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
 
پاسخ داده شده تیر 5, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
+1 امتیاز
7. درک کانال آلفا و ترنسپرنتسی (Transparent):
این عنوان به درک کانال آلفا و ترنسپرنتسی درتصاویر در OpenCV اشاره دارد. کانال آلفا یک کانال اضافی است که در تصاویر با پس‌زمینه شفاف استفاده می‌شود و شفافیت را نشان می‌دهد. ترنسپرنتسی به معنای شفافیت تصویر است و معمولا در تصویرهای PNG استفاده می‌شود.
 
import cv2

# خواندن تصویر
image = cv2.imread("image.png", cv2.IMREAD_UNCHANGED)

# جداسازی کانال‌ها
b, g, r, alpha = cv2.split(image)

# نمایش کانال آلفا و ترنسپرنتسی
cv2.imshow("Alpha Channel", alpha)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

پاسخ داده شده تیر 5, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
+1 امتیاز
8. عملیات بیتی، ماسک کردن تصویر و ایجاد یک تصویر PNG:
این عنوان به عملیات بیتی و ماسک کردن تصویر در OpenCV اشاره دارد. عملیات بیتی شامل تغییر بیت‌های تصویر می‌شود که می‌تواند برای ایجاد تصاویر جدید و تغییر تصاویر موجود مفید باشد. ماسک کردن تصویر به معنای تعیین ناحیه‌ای از تصویر با استفاده از ماسک می‌باشد. تصویر PNG یک تصویر با پس‌زمینه شفاف است که در آن از کانال آلفا برای نشان دادن شفافیت استفاده می‌شود.
 
import cv2

# خواندن تصویر
image = cv2.imread("image.jpg")

# تغییر بیت‌های تصویر
image = cv2.bitwise_xor(image, 255)

# ایجاد ماسک برای تعیین ناحیه‌ای از تصویر
mask = cv2.inRange(image, (0, 0, 0), (100, 100, 100))

# ماسک کردن تصویر
masked_image = cv2.bitwise_and(image, image, mask=mask)

# ذخیره تصویر PNG با پس‌زمینه شفاف
cv2.imwrite("transparent_image.png", masked_image, [cv2.IMWRITE_PNG_COMPRESSION, 0])

 

 

پاسخ داده شده تیر 5, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
+1 امتیاز
9. کوییز عملیات پایه روی تصاویر و درک تصاویر Transparent:
این عنوان به یک سری سوالات مربوط به عملیات پایه روی تصاویر و درک تصاویر Transparent در OpenCV اشاره دارد.
 
import cv2

# خواندن تصویر
image = cv2.imread("image.jpg")

# تغییر اندازه تصویر
resized_image = cv2.resize(image, (500, 500))

# تبدیل تصویر به سیاه و سفید
gray_image = cv2.cvtColor(resized_image, cv2.COLOR_BGR2GRAY)

# تشخیص لبه‌ها
edge_image = cv2.Canny(gray_image, 100, 200)

# ایجاد ماسک برای تعیین ناحیه‌ای از تصویر
mask = cv2.inRange(resized_image, (0, 0, 0), (100, 100, 100))

# ماسک کردن تصویر
masked_image = cv2.bitwise_and(resized_image, resized_image, mask=mask)

# ذخیره تصویر PNG با پس‌زمینه شفاف
cv2.imwrite("transparent_image.png", masked_image, [cv2.IMWRITE_PNG_COMPRESSION, 0])
 
پاسخ داده شده تیر 5, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
...