در قسمت اول این آموزش که با عنوان "شروع کار با دوربین رسپبریپای با زبان برنامهنویسی پایتون (قسمت اول)" فراهم شد، نحوه راهاندازی این ماژول و عکس گرفتن با استفاده از آن ارائه شد. در این آموزش یادگیری و راهاندازی این ماژول را با ضبط کردن ویدئو با دوربین رسپبریپای دنبال خواهیم کرد.
ضبط کردن ویدئو
اکنون که شما از دوربین برای گرفتن عکس ساکن استفاده کردید، میتوانید به سمت ضبط کردن ویدئو بروید.
- کدهای خود را با جایگزین کردن capture() با start_recording() و stop_recording() تغیر دهید:
camera.start_preview()
camera.start_recording('/home/pi/video.h264')
sleep(10)
camera.stop_recording()
camera.stop_preview()
- با اجرای کد خواهید دید که دوربین 10 ثانیه ضبط خواهد کرد و سپس پیشنمایش بسته خواهد شد.
- برای اینکه ویدئو را نمایش دهید کافی است تا یک پنجره ترمینال (terminal window) را با کلیک کردن روی آیکون مانیتور مشکی در نوار بازکنید:
- بهمنظور پخش ویدئو دستوری که در ادامه آمده است را تایپ کرده و Enter را بزنید:
omxplayer video.h264
- ویدئو باید پخش شود. ممکن است درواقع با سرعتی سریعتر آنچه ضبطشده است پخش شود که به دلیل نرخ فریم سریعتر omxplayer است.
افکتها
در ابتدا شما با camera=Picamera() یک شئی به نام camera ایجاد کردید. شما میتوانید از این شئ بهمنظور پیکربندی و تغییر تنظیماتش استفاده کنید. نرمافزار دوربین تعدادی افکت را فراهم آورده است و شما میتوانید شکلهای دیگری را اعمال کنید. بعضی از آنها فقط به پیشنمایش اعمال میشوند نه به تصویر گرفتهشده، تعدادی دیگر تنها به تصویر گرفتهشده اعمال میشوند، اما تعداد زیادی به هر دو اعمال میشوند.
- رزولوشن عکس گرفتهشده قابل تنظیم است. بهصورت پیش تنظیم بهصورت رزولوشن نمایشگر شما تنظیم میشود، اما بیشینه رزولوشن برای هر تصویر ساکن 2592*1944 و برای ضبط کردن ویدئو 1920*1080 است. مثالی که در ادامه میآید رزولوشن را تا بیشینه تنظیم میکند. توجه داشته باشید که شما همچنان نیاز دارید که نرخ فریمها را برای فعال کردن بیشینه رزولوشن تا 15 تنظیم کنید:
camera.resolution = (2592, 1944)
camera.framerate = 15
camera.start_preview()
sleep(5)
camera.capture('/home/pi/Desktop/max.jpg')
camera.stop_preview()
- کمینه رزولوشن 64*64 است. تلاش کنید در این رزولوشن یک عکس بگیرید و نتایج را مقایسه کنید.
- شما میتوانید بهراحتی و به کمک annotate-text، به تصویر خود text اضافه کنید. برای این کار برنامه زیر را امتحان کنید:
camera.start_preview()
camera.annotate_text = "Hello world!"
sleep(5)
camera.capture('/home/pi/Desktop/text.jpg')
camera.stop_preview()
- میتوانید روشنایی را تغییر دهید که از 0 تا 100 قابل تنظیم است. روشنایی بهصورت پیشفرض روی 50 تنظیمشده است. تلاش کنید تا تنظیمات را روی مقدار دیگری امتحان کنید:
camera.start_preview()
camera.brightness = 70
sleep(5)
camera.capture('/home/pi/Desktop/bright.jpg')
camera.stop_preview()
- تلاش کنید تا روشنایی را درون یک چرخه تنظیم کنید تا سطح روشنایی فعلی را روی صفحهنمایش بهصورت متن نمایش دهد:
camera.start_preview()
for i in range(100):
camera.annotate_text = "Brightness: %s" % i camera.brightness = i
sleep(0.1)
camera.stop_preview()
- بهصورت مشابه تنظیمات را برای کنتراست به کار ببرید:
camera.start_preview()
for i in range(100):
camera.annotate_text = "Contrast: %s" % i camera.contrast = i
sleep(0.1)
camera.stop_preview()
- شما میتوانید اندازه متن را به کمک کد زیر تنظیم کنید:
camera.annotate_text_size = 50
اندازههای قابلقبول از 6 تا 160 است و پیشفرض 32 میباشد.
- شما همچنان میتوانید رنگ متنها را تغییر دهید. در ابتدا مطمئن شوید که color با خط دستور import در بالا واردشده باشد:
from picamera import PiCamera, Color
سپس بقیه کد خود را مانند زیر بنویسید:
camera.start_preview()
camera.annotate_background = Color('blue')
camera.annotate_foreground = Color('yellow')
camera.annotate_text = " Hello world "
sleep(5)
camera.stop_preview()
- شما میتوانید از image-effect بهمنظور اعمال افکت خاصی استفاده کنید. انتخابها عبارتاند از:
none, negative, solarize, sketch, denoise, emboss, oilpaint, hatch, gpen, pastel, watercolor, film, blur, saturation, colorswap, washedout, posterise, colorpoint, colorbalance, cartoon, deinterlace1, and deinterlace2
پیشفرض none است. یکی را انتخاب کنید و امتحان کنید و نتیجه را مشاهده کنید. با دستور زیر میتوانید این افکتها را بکار برده و با یکدیگر مقایسه کنید:
camera.start_preview()
camera.image_effect = 'colorswap'
sleep(5)
camera.capture('/home/pi/Desktop/colorswap.jpg')
camera.stop_preview()
- یک چرخه را برای پیشنمایش افکتهای مختلفی بهمنظور امتحان آنها، بهصورت برنامه زیر آزمایش کنید تا درنهایت افکت موردعلاقه خودتان را بتوانید انتخاب کنید:
camera.start_preview()
for effect in camera.IMAGE_EFFECTS:
camera.image_effect = effect
camera.annotate_text = "Effect: %s" % effect
sleep(5)
camera.stop_preview()
- شما میتوانید از دستور awb-mode برای تنظیم خودکار تعادل سفیدی به مدی که قبلاً تعریفشده است بهمنظور اعمال یک افکت خاص، استفاده کنید. انتخابها عبارتاند از:
off, auto, sunlight, cloudy, shade, tungsten, fluorescent, incandescent, flash, and horizon
پیشفرض مد auto است. یکی را انتخاب کنید و آن را با برنامه زیر امتحان کنید:
camera.start_preview()
camera.awb_mode = 'sunlight'
sleep(5)
camera.capture('/home/pi/Desktop/sunlight.jpg')
camera.stop_preview()
شما میتوانید به کمک دستور camera.AWB_MODES حلقهای از تعادل سفیدی خودکار ایجاد کرده و آنها را با یکدیگر مقایسه کنید.
- میتوانید با استفاده از دستور exposure_mode برای تنظیم اکسپوژر به یک مد از قبل تعریفشده بهمنظور اعمال یک افکت خاص استفاده کنید. انتخابها عبارتاند از:
ff, auto, night, nightpreview, backlight, spotlight, sports, snow, beach, verylong, fixedfps, antishake, and fireworks.
پیشفرض auto است. یکی را انتخاب کنید و آن را امتحان کتید:
camera.start_preview()
camera.exposure_mode = 'beach'
sleep(5)
camera.capture('/home/pi/Desktop/beach.jpg')
camera.stop_preview()
شما میتوانید بازهم با استفاده از دستور camera_EXPOSURE_MODE یک چرخه را روی اکسپوژرهای موجود امتحان کنید.
حال که در این آموزش شما با نحوه کار با دوربین رسپبریپای آشنا شدید، با استفاده از خلاقیت خود میتوانید کاربردهای دیگر این ماژول و این برد را با یکدیگر ادغام کرده و متناسب با کاربرد موردنیاز خود پیادهسازی کنید. بهعنوان مثال میتوانید عکسهای خود را با این بورد در Twitter به اشتراک بگذارید و یا با استفاده از این دوربین اتاق کار خود را تحت نظر بگیرید. ورود و خروجها را ثبت و ضبط کنید و بسیاری پروژههای دیگر.
نظرات، پيشنهادات و انتقادات خود را براي بهتر شدن محتواي مطالب با ما در ميان بگذاريد...
ترجمه شده توسط تيم الکترونيک صنعت بازار | منبع: سايت projects.raspberrypi.org
نظرات (0)