تشخیص گوجه های سبز از گوجه های قرمز با پایتون

در این مقاله آموزش تشخیص گوجه های سبز از گوجه های قرمز با پایتون در خط تولید کارخانه را آموزش می بینید. این روش باعث می شود نیروی کار انسانی را در جای بهتری ...

انتشار: , زمان مطالعه: 4 دقیقه
تشخیص گوجه های سبز از گوجه های قرمز با پایتون
دسته بندی: برنامه نویسی تعداد بازدید: 225

تشخیص گوجه های سبز از گوجه های قرمز با پایتون

در این مقاله آموزش تشخیص گوجه های سبز از گوجه های قرمز با پایتون در خط تولید کارخانه را آموزش می بینید. این روش باعث می شود نیروی کار انسانی خود  را در جای بهتری مورد استفاده قرار دهید و از اتلاف نیروی انسانی جلوگیری کنید. در این آموزش شما می توانید یک دوربین را به سیستم وصل کنید و به صورت برخط همه چیز را آنالیز کنید.

برای تشخیص رنگ کوجه‌های سبز و قرمز به صورت زمان‌واقعی (real-time) با استفاده از دوربین در پایتون، می‌توانید از کتابخانه OpenCV استفاده کنید. OpenCV قابلیت‌های پردازش تصویر و تشخیص رنگ را ارائه می‌دهد. در اینجا یک روش ابتدایی برای این کار را توضیح می‌دهیم:

  1. وارد کردن کتابخانه‌های لازم: برای شروع، کتابخانه‌های OpenCV و NumPy را وارد کنید. NumPy برای کار با آرایه‌های تصویر استفاده می‌شود.

  2. دسترسی به دوربین: با استفاده از OpenCV به دوربین متصل شوید تا تصویر را دریافت کنید.

  3. پردازش تصویر به صورت زمان‌واقعی: در یک حلقه، تصاویر را از دوربین بخوانید و برای هر تصویر، مراحل زیر را انجام دهید.

  4. تبدیل تصویر به فضای رنگی HSV: تصاویر را به فضای رنگی HSV تبدیل کنید. این فضا برای تشخیص رنگ‌ها مناسب‌تر است.

  5. تعریف محدوده رنگ برای قرمز و سبز: برای هر رنگ (قرمز و سبز)، محدوده رنگی را در فضای HSV تعریف کنید.

  6. ایجاد ماسک‌های رنگی: با استفاده از محدوده‌های تعریف شده، ماسک‌های رنگی ایجاد کنید تا تصاویر را بر اساس رنگ فیلتر کنید.

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

کد تشخیص گوجه های سبز از گوجه های قرمز با پایتون

  این کد فرض می‌کند که شما با پایه‌های OpenCV آشنا هستید و محیطی دارید که OpenCV در آن نصب شده است.

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

با این حال، شما می‌توانید این کد را در محیط خود اجرا کنید. این برنامه از دوربین ویدیویی برای گرفتن تصاویر استفاده می‌کند، تصاویر را به فضای رنگی HSV تبدیل می‌کند، و سپس با استفاده از ماسک‌های رنگی برای تشخیص رنگ قرمز و سبز، کوجه‌ها را شناسایی می‌کند. در نهایت، تصاویر حاصل از تشخیص رنگ قرمز و سبز را نمایش می‌دهد. اگر کلید 'q' فشرده شود، برنامه خاتمه می‌یابد.

import cv2
import numpy as np

# Programmer : Ebrahim Shafiei (EbraSha)
# Function to detect red and green tomatoes in real-time
def detect_red_green_tomatoes():
    # Start capturing video from the camera
    cap = cv2.VideoCapture(0)

    while True:
        # Read a frame from the camera
        ret, frame = cap.read()
        if not ret:
            break

        # Convert the frame to HSV color space
        hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

        # Define range for red color in HSV
        lower_red = np.array([0, 120, 70])
        upper_red = np.array([10, 255, 255])
        lower_red2 = np.array([170, 120, 70])
        upper_red2 = np.array([180, 255, 255])

        # Define range for green color in HSV
        lower_green = np.array([40, 40, 40])
        upper_green = np.array([90, 255, 255])

        # Create masks to detect red and green colors
        red_mask1 = cv2.inRange(hsv_frame, lower_red, upper_red)
        red_mask2 = cv2.inRange(hsv_frame, lower_red2, upper_red2)
        red_mask = red_mask1 + red_mask2
        green_mask = cv2.inRange(hsv_frame, lower_green, upper_green)

        # Filter out the red and green areas
        red_result = cv2.bitwise_and(frame, frame, mask=red_mask)
        green_result = cv2.bitwise_and(frame, frame, mask=green_mask)

        # Display the original and the result frames
        cv2.imshow("Original Frame", frame)
        cv2.imshow("Red Tomatoes", red_result)
        cv2.imshow("Green Tomatoes", green_result)

        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    # Release the camera and close all windows
    cap.release()
    cv2.destroyAllWindows()

# Call the function to start detection
detect_red_green_tomatoes()

 


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)