کیت توسعه نرم افزار پایتون
راهنمای کاربر
کیت توسعه نرم افزار پایتون
PCO از شما می خواهد که دستورالعمل های این سند را به دقت بخوانید و دنبال کنید.
برای هر گونه سوال یا نظر، لطفا در هر زمان با ما تماس بگیرید.
تلفن: +49 (0) 9441 2005 50
فکس: +49 (0) 9441 2005 20
آدرس پستی: Excelitas PCO GmbH Donaupark 11 93309 Kelheim, Germany
ایمیل: info@pco.de
web: www.pco.de
راهنمای کاربر pco.python 0.1.7
منتشر شده در دسامبر 2021
©Copyright Excelitas PCO GmbH
این اثر تحت مجوز Creative Commons Attribution-No Derivatives 4.0 International مجوز دارد. به view یک کپی از این مجوز، مراجعه کنید http://creativecommons.org/licenses/by-nd/4.0/ یا نامه ای به Creative Commons، صندوق پستی 1866، Mountain ارسال کنید View, CA 94042, USA.
ژنرال
بسته Python pco همه عملکردها را برای کار با دوربین های pco که بر اساس جریان هستند ارائه می دهد pco.sdk. تمام کتابخانه های مشترک برای ارتباط با دوربین و پردازش تصویر بعدی گنجانده شده است.
- کلاس دوربین آسان برای استفاده
- API قدرتمند به pco.sdk
- ضبط و پردازش تصویر با pco.recorder
1.1 نصب
نصب از pypi (توصیه می شود):
$ pip نصب pco
1.2 استفاده اساسی
matplotlib.pyplot را به صورت plt وارد کنید
وارد کردن pco
با pco.Camera() به عنوان دوربین:
cam.record()
تصویر، متا = cam.image()
plt.imshow (تصویر، cmap='خاکستری')
plt.show()1.3 ثبت رویداد و خطا
برای فعال کردن خروجی لاگ، شی Camera را با پارامتر debuglevel= ایجاد کنید.
سطح اشکال زدایی را می توان روی یکی از مقادیر زیر تنظیم کرد:
- "خاموش" همه خروجی ها را غیرفعال می کند.
- "خطا" فقط پیام های خطا را نشان می دهد.
- 'مختلف' همه پیام ها را نشان می دهد.
- 'extra verbose' همه پیام ها و مقادیر را نشان می دهد.
سطح رفع اشکال پیشفرض 'خاموش' است.
pco.Camera (debuglevel='verbose')
…
[][sdk] get_camera_type: خوب.
زمان اختیاریamp= پارامتر a را فعال می کند tag در خروجی چاپی مقادیر ممکن عبارتند از: "روشن" و "خاموش". مقدار پیشفرض خاموش است'.
pco.Camera(debuglevel='verbose', timestamp='روشن')
…
[2019-11-25 15:54:15.317855 / 0.016 s] [][sdk] get_camera_type: خوب.
اسناد API
کلاس pco.Camera روش های زیر را ارائه می دهد:
- record() یک نمونه ضبط کننده جدید را تولید، پیکربندی و راه اندازی می کند.
- stop() ضبط فعلی را متوقف می کند.
- close() دوربین فعال فعلی را می بندد و منابع اشغال شده را آزاد می کند.
- image() یک تصویر را از ضبط کننده به عنوان آرایه numpy برمی گرداند.
- images () تمام تصاویر ضبط شده را از ضبط کننده به عنوان لیستی از آرایه های numpy برمی گرداند.
- image_average() تصویر میانگین را برمی گرداند. این تصویر از روی تمام تصاویر ثبت شده در بافر محاسبه می شود.
- set_exposure_time() زمان نوردهی را برای دوربین تنظیم می کند.
- Wait_for_first_image() منتظر اولین تصویر موجود در حافظه ضبط میشود.
کلاس pco.Camera دارای متغیر زیر است:
- پیکربندی
کلاس pco.Camera دارای اشیاء زیر است:
- sdk دسترسی مستقیم به تمام توابع زیربنایی را ارائه می دهد pco.sdk.
- ضبط کننده دسترسی مستقیم به تمام عملکردهای زیرین دستگاه را ارائه می دهد pco.recorder.
2.1 روش ها
این بخش تمام روش های ارائه شده توسط کلاس pco.Camera را توضیح می دهد.
2.1.1 ضبط
توضیحات یک نمونه ضبط کننده جدید ایجاد، پیکربندی و راه اندازی می کند. کل پیکربندی دوربین باید قبل از فراخوانی record() تنظیم شود. دستور set_exposure_time() تنها استثناست. این عملکرد هیچ تاثیری روی شی ضبط ندارد و می تواند در حین ضبط فراخوانی شود.
نمونه اولیه رکورد def(self, number_of_images=1, mode='sequence'):
پارامتر
نام | توضیحات |
تعداد_تصاویر | تعداد تصاویر اختصاص داده شده در درایور را تنظیم می کند. RAM کامپیوتر حداکثر مقدار را محدود می کند. |
حالت | در حالت "توالی"، این عملکرد در حین ضبط مسدود می شود. با رسیدن به تعداد_تصاویر، ضبط کننده به طور خودکار متوقف می شود. در حالت "sequence non blocking"، این عملکرد غیر مسدود است. قبل از خواندن یک تصویر، وضعیت باید بررسی شود. این حالت برای خواندن تصاویر در حین ضبط، به عنوان مثال تصویر کوچک استفاده می شود. در حالت "حلقه بافر" این عملکرد مسدود کننده نیست. قبل از خواندن یک تصویر، وضعیت باید بررسی شود. با رسیدن به تعداد_تصاویر، ضبط کننده ضبط را متوقف نمی کند. هنگامی که این اتفاق می افتد، قدیمی ترین تصاویر بازنویسی می شوند. در حالت 'fifo'، این عملکرد غیر مسدود است. قبل از خواندن یک تصویر، وضعیت باید بررسی شود. هنگامی که به تعداد_تصاویر در fifo رسید، تصاویر زیر حذف می شوند تا تصاویر از fifo خوانده شوند. |
2.1.2 بایستید
توضیحات ضبط فعلی را متوقف می کند. در حالت "ring buffer" و "fifo" این تابع باید توسط کاربر فراخوانی شود. در حالت "sequence" و "sequence non blocking"، این تابع با رسیدن به تعداد_تصاویر به طور خودکار فراخوانی می شود.
نمونه اولیه توقف قطعی (خود):
2.1.3 بستن
توضیحات دوربین فعال شده را می بندد و منابع مسدود شده را آزاد می کند. این تابع باید قبل از پایان برنامه فراخوانی شود. در غیر این صورت، منابع اشغال شده باقی می ماند.
نمونه اولیه دف نزدیک (خود):
اگر شی دوربین توسط دستور with ایجاد شود، این تابع به طور خودکار فراخوانی می شود. فراخوانی صریح برای close() دیگر لازم نیست.
با pco.Camera() به عنوان دوربین: # کارها را انجام دهید
2.1.4 تصویر
توضیحات تصویری را از ضبط کننده برمی گرداند. نوع تصویر numpy.ndarray است. این آرایه بسته به وضوح و ROI تصویر شکل می گیرد.
نمونه اولیه تصویر def(self, image_number=0, roi=none):
پارامتر
نام | توضیحات |
تصویر_شماره | تعداد تصویر خوانده شده را مشخص می کند. در حالت "sequence" یا "sequence non blocking"، فهرست ضبط کننده با image_number مطابقت دارد. اگر image_number روی 0xFFFFFFFF تنظیم شده باشد، آخرین تصویر ضبط شده کپی می شود. این اجازه می دهد تا یک پیش زنده ایجاد کنیدview در حین ضبط |
roi | منطقه مورد علاقه را تعیین می کند. فقط این ناحیه از تصویر به مقدار برگشتی کپی می شود. |
Example >>> cam.record(number_of_images=1, mode='sequence')
>>> تصویر، متا = cam.image()
>>> تایپ (تصویر) numpy.ndarray
>>> image.shape (2160، 2560)
>>> image, metadata = cam.image(roi=(1, 1, 300, 300))
>>> image.shape (300، 300)
2.1.5 عکس
توضیحات همه تصاویر ضبط شده را از ضبط کننده به عنوان لیستی از آرایه های بی رنگ برمی گرداند.
نمونه اولیه تصاویر def (self، roi=هیچکدام، blocksize=هیچکدام):
پارامتر
نام | توضیحات |
roi | منطقه مورد علاقه را تعیین می کند. فقط این ناحیه از تصویر به مقدار برگشتی کپی می شود. |
اندازه بلوک | حداکثر تعداد تصاویری که برگردانده می شوند را تعیین می کند. این پارامتر فقط در حالت 'fifo' و تحت شرایط خاص مفید است. |
Example >>> cam.record(number_of_images=20, mode='sequence')
>>> تصاویر، فراداده = cam.images()
>>> لن (تصاویر) 20
>>> برای تصویر در تصاویر:
…
print('Mean: {:7.2f} DN'.format(image.mean()))
…
میانگین: 2147.64 DN
میانگین: 2144.61 DN
…
>>> تصاویر = cam.images(roi=(1, 1, 300, 300))
>>> images[0].shape (300، 300)
2.1.6 Image_Average
توضیحات تصویر میانگین را برمیگرداند. این تصویر از روی تمام تصاویر ثبت شده در بافر محاسبه می شود.
نمونه اولیه def image_average(self, roi=none):
پارامتر
نام | توضیحات |
roi | منطقه مورد علاقه را تعریف می کند. فقط این ناحیه از تصویر به مقدار برگشتی کپی می شود. |
Example >>> cam.record(number_of_images=100, mode='sequence')
>>> میانگین = cam.image_average()
>>> میانگین = cam.image_average(roi=(1, 1, 300, 300))
2.1.7 تنظیم_زمان_قرار گرفتن
توضیحات زمان نوردهی دوربین را تنظیم می کند.
نمونه اولیه def set_exposure_time (self, exposure_time):
پارامتر
نام | توضیحات |
مدت زمان قرارگیری در معرض بیماری | باید به عنوان مقدار شناور یا عدد صحیح در واحد "ثانیه" داده شود. مقادیر زیربنایی برای تابع sdk.set_delay_exposure_time (0، 'ms', time, timebase) به طور خودکار محاسبه می شود. زمان تاخیر روی 0 تنظیم شده است. |
Example >>> cam.set_exposure_time(0.001)
>>> cam.set_exposure_time(1e-3)
2.1.8 انتظار_برای_اولین_تصویر
توضیحات منتظر اولین تصویر موجود در حافظه ضبط می شود. در حالت ضبط، "توالی غیر مسدود کننده"، "بافر حلقه". و 'fifo'، تابع record() بلافاصله برمی گردد. بنابراین، این تابع را می توان برای انتظار تصاویر از دوربین قبل از فراخوانی image()، images() یا image_average() استفاده کرد.
نمونه اولیه def wait_for_first_image(self):
2.2 پیکربندی متغیر
پارامترهای دوربین با تغییر متغیر پیکربندی به روز می شوند.
cam.configuration = {'exposure time': 10e-3,
'roi': (1، 1، 512، 512)،
زمانamp': 'ascii',
'نرخ پیکسل': 100_000_000،
"ماشه": "توالی خودکار"،
'اکتساب': 'خودکار'،
'فراداده': 'روشن'،
'binning': (1، 1)}
متغیر فقط قبل از فراخوانی تابع record() قابل تغییر است. این یک فرهنگ لغت با تعداد مدخل مشخص است. لازم نیست همه عناصر ممکن مشخص شوند. اس های زیرampکد le فقط "نرخ پیکسل" را تغییر می دهد و هیچ عنصر دیگری از پیکربندی را تحت تأثیر قرار نمی دهد.
با pco.Camera() به عنوان دوربین:
cam.configuration = {'نرخ پیکسل': 286_000_000}
cam.record()
…
2.3 شی
این بخش تمام اشیاء ارائه شده توسط کلاس pco.Camera را توضیح می دهد.
2.3.1 SDK
شی sdk اجازه دسترسی مستقیم به تمام توابع زیرین را می دهد pco.sdk.
>>> cam.sdk.get_temperature()
{'دمای سنسور': 7.0، 'دمای دوربین': 38.2، 'دمای قدرت': 36.7}
تمام مقادیر بازگشتی از توابع sdk دیکشنری هستند. در حال حاضر همه تنظیمات دوربین تحت پوشش کلاس دوربین نیستند. تنظیمات ویژه باید مستقیماً با فراخوانی تابع sdk مربوطه تنظیم شوند.
2.3.2 ضبط کننده
شی rec دسترسی مستقیم به تمام توابع زیربنایی را ارائه می دهد pco.recorder. فراخوانی مستقیم متد کلاس ضبط کننده ضروری نیست. تمام توابع به طور کامل توسط متدهای کلاس Camera پوشش داده شده است.
https://www.pco.de/applications/
pco اروپا 49 9441 2005 +50 info@pco.de pco.de |
pco آمریکا 1 866 678 +4566 info@pco-tech.com pco-tech.com |
pco آسیا +65 6549 7054 info@pco-imaging.com pco-imaging.com |
pco چین +86 512 67634643 info@pco.cn pco.cn |
اسناد / منابع
![]() |
کیت توسعه نرم افزار پایتون EXCELITAS TECHNOLOGIES [pdf] دفترچه راهنمای کاربر کیت توسعه نرم افزار پایتون، کیت توسعه نرم افزار، کیت توسعه، کیت |