csi — kamera sensörleri¶
csi modülü, bir OpenMV Cam üzerindeki kamera sensörlerine yönelik modern, nesne yönelimli arayüzdür. Her fiziksel sensör bir CSI örneğiyle temsil edilir; böylece bir renk sensörünü termal veya olay sensörüyle eşleştiren çok spektrumlu görüntüleyici kartları, yapıcıya farklı bir cid geçirerek her birini bağımsız olarak çalıştırabilir. Tek sensörlü kameralar yalnızca bir CSI örneği oluşturur.
Bir CSI nesnesi, tam sensör yapılandırmasının sahibidir – piksel formatı, çerçeve boyutu / pencere, pozlama / kazanç / beyaz dengesi, donanımsal aynalama ve çevirme, renk çubuğu test deseni, çerçeve hızı saati, otomatik pozlama için ROI ve çipe özgü ioctl komutları. Çerçeveler CSI.snapshot() ile yakalanır; bu, çerçeve arabelleği (frame buffer) tarafından desteklenen bir image.Image döndürür.
Bu modül, eski sensor modülünün yerini alır (eski modül aynı işlevselliği, tek bir gizli sensöre bağlı modül düzeyindeki fonksiyonlar olarak sunuyordu). Yeni kod CSI kullanmalıdır.
Örnek kullanım:
import csi
# Setup camera.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000) # skip frames
# Take pictures.
while(True):
csi0.snapshot()
Asyncio kullanımı¶
Yukarıdaki bloke eden CSI.snapshot() döngüsü, asyncio olay döngüsüyle iş birliği yapmaz – snapshot bir sonraki çerçeveyi beklerken, programdaki diğer her coroutine donar. Bir yakalama döngüsünün diğer eşzamanlı işlerle (bir UART istemcisi, bir buton gözlemcisi, bir ağ görevi) bir arada var olabilmesi için, CSI nesnesini snapshot çağrısını await-uyumlu bir coroutine’e dönüştüren küçük bir bağdaştırıcıyla sarın; bu bağdaştırıcı snapshot(blocking=False) çağrısını yoklar ve kontroller arasında olay döngüsüne kontrolü bırakır:
import asyncio
import csi
class AsyncCSI:
def __init__(self, *args, **kwargs):
self._csi = csi.CSI(*args, **kwargs)
def __getattr__(self, name):
return getattr(self._csi, name)
async def snapshot(self):
while True:
img = self._csi.snapshot(blocking=False)
if img is not None:
return img
await asyncio.sleep_ms(0)
__getattr__ diğer her özniteliği (reset, pixformat, framesize, sensör ayarları) alttaki CSI nesnesine yönlendirir; böylece sarmalayıcı yerine doğrudan kullanılabilir bir alternatiftir. İlk bloke etmeyen çağrı, eğer henüz çalışmıyorsa kameranın DMA yakalamasını da başlatır; bu nedenle ek bir başlatma işlemine gerek yoktur.
Bir yakalama döngüsü daha sonra daha büyük bir asyncio programına başka bir coroutine olarak sığar:
async def capture_loop(cam):
while True:
img = await cam.snapshot()
# process img here
async def main():
cam = AsyncCSI()
cam.reset()
cam.pixformat(csi.RGB565)
cam.framesize(csi.QVGA)
asyncio.create_task(some_other_task())
await capture_loop(cam)
asyncio.run(main())
framebuffers ayarı bu yapıda da önemlidir – tek arabellek modu, snapshot(blocking=False) çağrısının bir sonraki çerçeve yakalanana kadar None döndürmesine neden olurken, çift veya üçlü arabellekleme bunu yumuşatır; böylece sarmalayıcı genellikle ilk yoklamada bekleyen arabelleğe alınmış bir çerçeve bulur. Tam anlatım için asyncio öğreticisindeki AsyncCSI bölümüne bakın.
class CSI – Kamera Sensör Arayüzü¶
CSI sınıfı, bir kamera sensörünü kontrol etmek için kullanılır.
- class csi.CSI(cid: int = -1, delays: bool = True, fflush: bool = True, stream: bool | None = None)¶
Bir kamera sensörüyle iletişim kurmak için bir nesne oluşturur. Birden fazla sensöre sahip kartlarda, belirli bir CSI nesnesi, bir FLIR Lepton sensör modülünü seçmek için
csi.LEPTONgibi bircidgeçirilerek seçilebilir.cid-1 ise birincil sensör seçilir (çok sensörlü kartlarda tipik olarak bir renkli kamera modülü).delaysFalseise csi sürücüsündeki tüm yerleşme süresi gecikmeleri devre dışı bırakılır. Varsayılan olarak sensör sürücüsü,CSI.snapshottarafından bozuk çerçeveler döndürülmesini önlemek için sıfırlama / mod değişikliğinden sonra gecikir. Gecikmeleri devre dışı bırakmak, güncellemeleri toplu hâlde yapmanıza veCSI.snapshotçağrılmadan önce sonda tek bir gecikme uygulamanıza olanak tanır.fflushFalseiseCSI.framebuffersiçinde bahsedilen otomatik çerçeve arabelleği boşaltması devre dışı bırakılır. Bu, çerçeve arabelleği fifo’sundaki çerçeveler üzerindeki tüm zaman sınırını kaldırır.stream, bu CSI’nin IDE’ye gönderilen akış kaynağı olup olmadığını seçer.Noneise (varsayılan) CSI yalnızca birincil (yardımcı olmayan) sensör ise akış kaynağı olur. Bu CSI’yi akış kaynağı olmaya zorlamak içinTruegeçirin veya mevcut akış kaynağını değiştirmeden bırakmak için herhangi bir yanlış değer geçirin.Yöntemler¶
- reset(hard: bool = True) None¶
Kamera sensörünü başlatır.
hardTrueise kamera modülüne giden RESET sinyal GPIO’sunu değiştirerek bir donanım sıfırlaması gerçekleştirir. Birincil modülle aynı RESET sinyal GPIO’sunu paylaşan yardımcı kamera sensörleri sıfırlanırkenhardfalse olarak ayarlanmalıdır.
- shutdown(enable: bool) None¶
Kamerayı uykudan daha düşük güçlü bir moda alır (ancak uyandırıldığında kameranın sıfırlanması gerekir).
- sleep(enable: bool) None¶
enableTrue ise kamerayı uyku moduna alır. Aksi takdirde tekrar uyandırır.
- flush() None¶
Geçerli çerçeve arabelleği (frame buffer) içeriğini IDE önizlemesine kopyalar. Betik sona ererse IDE’nin son çerçeveyi göstermesi için bunu son
CSI.snapshotçağrısından sonra çağırın.
- snapshot(time: int = -1, frames: int = -1, blocking: bool = True, image: image.Image | None = None) image.Image | None¶
Kamerayı kullanarak bir resim çeker ve bir
image.Imagenesnesi döndürür.timeve/veyaframesgeçirilirse snapshot, belirtilen sayıdatimemilisaniye ve/veya kameradan yakalananframesçerçeve boyunca bloke olur. Her iki argüman aynı anda kullanılabilir.timeve/veyaframesgeçtikten sonra snapshotNonedöndürür.blocking, bloke etmeyen davranışı etkinleştirmek içinFalseolabilir; bu, kameradan gelen bir sonraki görüntü hazır olmadığında snapshot’ın beklemek yerineNonedöndürmesine neden olur.image, yeni birimage.Imagenesnesi döndürmek yerine kameradan yakalanan yeni görüntüyle güncellenecek başka birimage.Imagenesnesi olabilir. Önceki görüntü içeriği derin kopya yoluyla üzerine yazılır.CSI.auto_rotationetkinse bu yöntem zaten döndürülmüş birimage.Imagedöndürür.
- cid() int¶
Kamera modülünün çip kimliğini döndürür.
csi.OV2640,csi.OV5640,csi.OV7670,csi.OV7690,csi.OV7725,csi.OV9650,csi.MT9V022,csi.MT9V024,csi.MT9V032,csi.MT9V034,csi.MT9M114,csi.BOSON320,csi.BOSON640,csi.LEPTON,csi.HM01B0,csi.HM0360,csi.GC2145,csi.GENX320ES,csi.GENX320,csi.PAG7920,csi.PAG7936,csi.PAJ6100,csi.FROGEYE2020veyacsi.SOFTCSIdeğerlerinden herhangi biriyle karşılaştırın.
- readable() bool¶
CSI.snapshottarafından döndürülmeye hazır bir görüntü varsaTruedöndürür; böylece snapshot çağrısı bloke olmaz.
- pixformat(pixformat: int | None = None) int | None¶
Kamera modülünün piksel formatını
csi.GRAYSCALE,csi.RGB565,csi.BAYER,csi.YUV422veyacsi.JPEG(yalnızca OV2640/OV5640’ta) değerlerinden birine ayarlar.Argümansız çağrıldığında geçerli pixformat’ı döndürür.
- framesize(framesize: int | Tuple[int, int] | None = None) int | None¶
Kamera modülünün çerçeve boyutunu boyut sabitlerinden birine ayarlar (örn.
csi.QVGA,csi.VGA,csi.HDvb. — sabitler bölümüne bakın).Alternatif olarak, özel bir çerçeve boyutunu
(w, h)tuple’ı olarak geçirebilirsiniz.CSI.snapshotçağrıldığında özel çerçeve boyutu DMA kurallarına göre değerlendirilir. Genellikle çerçeve boyutlarının 8 pikselin ve/veya 16 baytın katı olması gerekir.Argümansız çağrıldığında geçerli framesize’ı döndürür.
- framerate(rate: int | None = None) int | None¶
Kamera modülü için çerçeve hızını Hz cinsinden ayarlar.
Argümansız çağrıldığında geçerli framerate’i döndürür.
Not
CSI.framerate, çerçeve hızını belirtilen hızda veya altında tutmak için kamera modülünden alınan çerçeveleri atarak çalışır. Varsayılan olarak kamera maksimum çerçeve hızında çalışır. Belirli kamera sensörü için uygulanmışsaCSI.framerate, gücü korumak ve sensör pozlamasını artırarak görüntü kalitesini iyileştirmek için kamera sensörü çerçeve hızını dahili olarak da azaltır.CSI.framerate, bazı kameralardaCSI.auto_exposureile çakışabilir.
- window(roi: Tuple[int, int] | Tuple[int, int, int, int] | None = None) Tuple[int, int, int, int] | None¶
Kameranın çözünürlüğünü geçerli çözünürlüğün bir alt bölgesine ayarlar.
roibir(x, y, w, h)tuple’ıdır. Ayrıca(w, h)geçirebilirsiniz; bu durumda pencere ortalanır.Argümansız çağrıldığında geçerli
(x, y, w, h)tuple’ını döndürür.
- gainceiling(gainceiling: int) bool¶
Kamera görüntüsünün kazanç tavanını (gainceiling) 2, 4, 8, 16, 32, 64 veya 128’den birine ayarlar.
Başarı durumunda
True, başarısızlık durumundaFalsedöndürür.
- brightness(brightness: int) bool¶
Kamera görüntüsünün parlaklığını ayarlar.
Başarı durumunda
True, başarısızlık durumundaFalsedöndürür.
- contrast(contrast: int) bool¶
Kamera görüntüsünün kontrastını ayarlar.
Başarı durumunda
True, başarısızlık durumundaFalsedöndürür.
- saturation(saturation: int) bool¶
Kamera görüntüsünün doygunluğunu ayarlar.
Başarı durumunda
True, başarısızlık durumundaFalsedöndürür.
- quality(quality: int) bool¶
Kamera görüntüsünün JPEG sıkıştırma kalitesini ayarlar. 0 - 100.
Başarı durumunda
True, başarısızlık durumundaFalsedöndürür.Not
Yalnızca OV2640/OV5640 kameraları için.
- colorbar(enable: bool) bool¶
Renk çubuğu modunu açar (
True) veya kapatır (False). Varsayılan olarak kapalıdır.Başarı durumunda
True, başarısızlık durumundaFalsedöndürür.
- auto_gain(enable: bool, gain_db: float | None = None, gain_db_ceiling: float | None = None) None¶
enable, otomatik kazanç kontrolünü açar (True) veya kapatır (False). Kamera otomatik kazanç kontrolü açık olarak başlar.enableFalseisegain_dbile sabit bir kazancı desibel cinsinden ayarlayabilirsiniz.enableTrueise otomatik kazanç kontrol algoritması içingain_db_ceilingile maksimum kazanç tavanını desibel cinsinden ayarlayabilirsiniz.Not
Renkleri izlemek istiyorsanız beyaz dengesini de kapatmanız gerekir.
- auto_exposure(enable: bool, exposure_us: int = -1) None¶
enable, otomatik pozlama kontrolünü açar (True) veya kapatır (False). Kamera otomatik pozlama kontrolü açık olarak başlar.enableFalseiseexposure_usile sabit bir pozlama süresini mikrosaniye cinsinden ayarlayabilirsiniz.Not
Kamera otomatik pozlama algoritmaları, pozlama değerini ne kadar ayarladıkları konusunda oldukça temkinlidir ve genellikle pozlama değerini fazla değiştirmekten kaçınır. Bunun yerine, değişen aydınlatmayla başa çıkmak için kazanç değerini çokça değiştirirler.
- auto_whitebal(enable: bool, rgb_gain_db: Tuple[float, float, float] | None = None) None¶
enable, otomatik beyaz dengesini açar (True) veya kapatır (False). Kamera otomatik beyaz dengesi açık olarak başlar.enableFalseisergb_gain_dbile kırmızı, yeşil ve mavi kanalları için ayrı ayrı sabit bir kazancı desibel cinsinden ayarlayabilirsiniz.Not
Renkleri izlemek istiyorsanız kazanç kontrolünü de kapatmanız gerekir.
- rgb_gain_db() Tuple[float, float, float]¶
Geçerli kamera kırmızı, yeşil ve mavi kazanç değerlerinin desibel cinsinden bir
(r, g, b)tuple’ını döndürür.
- auto_blc(enable: bool, regs: List[int] | None = None) None¶
Kameradaki otomatik siyah seviyesi kalibrasyonunu (BLC) ayarlar.
enable, BLC’yi açmak veya kapatmak içinTrueveyaFalsegeçirin. Genellikle bunu her zaman açık tutmak istersiniz.regsdevre dışı bırakılırsa, önceki birCSI.blc_regsçağrısından elde edilen BLC yazmaç değerlerini manuel olarak ayarlayabilirsiniz.
- blc_regs() List[int]¶
Sensör BLC yazmaçlarını bir tamsayı listesi olarak döndürür.
CSI.auto_blcile birlikte kullanım içindir.
- hmirror(enable: bool | None = None) bool | None¶
Yatay aynalama modunu açar (
True) veya kapatır (False). Varsayılan olarak kapalıdır.Argümansız çağrıldığında geçerli ayarı döndürür.
- vflip(enable: bool | None = None) bool | None¶
Dikey çevirme modunu açar (
True) veya kapatır (False). Varsayılan olarak kapalıdır.Argümansız çağrıldığında geçerli ayarı döndürür.
- transpose(enable: bool | None = None) bool | None¶
Transpoze modunu açar (
True) veya kapatır (False). Varsayılan olarak kapalıdır.vflip=False, hmirror=False, transpose=False -> 0 derece döndürme
vflip=True, hmirror=False, transpose=True -> 90 derece döndürme
vflip=True, hmirror=True, transpose=False -> 180 derece döndürme
vflip=False, hmirror=True, transpose=True -> 270 derece döndürme
Argümansız çağrıldığında geçerli ayarı döndürür.
- auto_rotation(enable: bool | None = None) bool | None¶
Otomatik döndürme modunu açar (
True) veya kapatır (False). Varsayılan olarak kapalıdır.Argümansız çağrıldığında geçerli ayarı döndürür.
Not
Bu yöntem yalnızca OpenMV Cam’de bir
imutakılı olduğunda çalışır ve otomatik olarak etkinleştirilir.
- framebuffers(count: int | None = None) int | None¶
Görüntü verisi almak için kullanılan çerçeve arabelleği sayısını ayarlar. Varsayılan olarak OpenMV Cam, ayırabileceği maksimum sayıda çerçeve arabelleği ayırmaya çalışır.
CSI.pixformat,CSI.framesizeveyaCSI.windowçağrıldığında yeniden ayırma gerçekleşir.count1 (tek arabellek), 2 (çift arabellek) veya 3 (üçlü arabellek) değeri ilgili yakalama modunu seçer. Sürücüyücountarabelleğin sıraya alındığı video FIFO moduna almak için 4 veya daha büyük bir değer geçirin — bu, bir SD karta video kaydetmek için kullanışlıdır. Çerçeve atıldığında, aktif olan dışındaki tüm çerçeve arabellekleri temizlenir; böyleceCSI.snapshother zaman güncel bir çerçeve döndürür.Argümansız çağrıldığında geçerli sayıyı döndürür.
- special_effect(effect: int) bool¶
Özel dijital efekti ayarlar (
csi.NORMALveyacsi.NEGATIVEdeğerlerinden biri).Başarı durumunda
True, başarısızlık durumundaFalsedöndürür.
- lens_correction(enable: bool, radi: int, coef: int) bool¶
enableetkinleştirmek içinTrue, devre dışı bırakmak içinFalse.radidüzeltilecek piksellerin tamsayı yarıçapı.coefdüzeltme gücü.Başarı durumunda
True, başarısızlık durumundaFalsedöndürür.
- vsync_callback(cb: Callable[[int], None] | None = None) Callable[[int], None] | None¶
Kamera modülü her yeni çerçeve oluşturduğunda (ancak çerçeve alınmadan önce) çalıştırılacak
cbgeri çağırmasını (kesme bağlamında) kaydeder.cbbir argüman alır ve değişiklikten sonra vsync pininin geçerli durumu kendisine geçirilir.Argümansız çağrıldığında kayıtlı geri çağırmayı döndürür. Geri çağırmayı temizlemek için çağrılabilir olmayan herhangi bir değer geçirin.
- frame_callback(cb: Callable[[], None] | None = None) Callable[[], None] | None¶
Kamera modülü her yeni çerçeve oluşturduğunda ve çerçeve
CSI.snapshotaracılığıyla okunmaya hazır olduğunda çalıştırılacakcbgeri çağırmasını (kesme bağlamında) kaydeder.cbhiçbir argüman almaz. Bir çerçeveyi daha sonramicropython.schedule()ile okumayı zamanlamak için bunu kullanın.Argümansız çağrıldığında kayıtlı geri çağırmayı döndürür. Geri çağırmayı temizlemek için çağrılabilir olmayan herhangi bir değer geçirin.
- ioctl(request: int, *args) Any¶
Sensöre özgü bir istek yürütür.
request,IOCTL_*sabitlerinden biridir; kalan konumsal argümanlar ve dönüş değeri isteğe bağlıdır. Desteklenen istekler aşağıda sensör ailesine göre gruplandırılmıştır.Genel (herhangi bir sensör):
ioctl(IOCTL_SET_READOUT_WINDOW, (x, y, w, h))ioctl(IOCTL_SET_READOUT_WINDOW, (w, h))Sensör okuma penceresini ayarlar. Daha küçük bir pencere, görüş alanı pahasına çerçeve hızını artırır.
ioctl(IOCTL_GET_READOUT_WINDOW)Geçerli okuma penceresini bir
(x, y, w, h)tuple’ı olarak döndürür.ioctl(IOCTL_SET_TRIGGERED_MODE, enable)MT9V034’te tetiklemeli modu etkinleştirir (
True) veya devre dışı bırakır (False).ioctl(IOCTL_GET_TRIGGERED_MODE)Geçerli tetiklemeli mod durumunu bir
boololarak döndürür.ioctl(IOCTL_SET_FOV_WIDE, enable)Trueolduğunda,framesize()yöntemine çerçeve hızı yerine görüş alanı için optimizasyon yapmasını söyler.ioctl(IOCTL_GET_FOV_WIDE)Geçerli FOV-geniş durumunu bir
boololarak döndürür.ioctl(IOCTL_SET_NIGHT_MODE, enable)Sensörün düşük ışık “gece modunu” etkinleştirir (
True) veya devre dışı bırakır (False). Yalnızca OV7725 ve OV5640.ioctl(IOCTL_GET_NIGHT_MODE)Geçerli gece modu durumunu bir
boololarak döndürür.ioctl(IOCTL_GET_RGB_STATS)Sensörden okunan ham RGB kanalı istatistiklerinin bir 4’lü tuple’ını
(r, gb, gr, b)döndürür (tipik olarak beyaz dengesi ayarı için kullanılır).
OV5640 FPC – otomatik odaklama:
ioctl(IOCTL_TRIGGER_AUTO_FOCUS)OV5640 FPC modülünde bir otomatik odaklama taraması başlatır.
ioctl(IOCTL_PAUSE_AUTO_FOCUS)Devam eden bir otomatik odaklama taramasını duraklatır.
ioctl(IOCTL_RESET_AUTO_FOCUS)Otomatik odaklama konumunu varsayılana sıfırlar.
ioctl(IOCTL_WAIT_ON_AUTO_FOCUS)ioctl(IOCTL_WAIT_ON_AUTO_FOCUS, timeout_ms)Geçerli otomatik odaklama taraması bitene kadar bloke olur.
timeout_msatlanırsa varsayılan olarak 5000’dir.
FLIR Lepton:
ioctl(IOCTL_LEPTON_GET_WIDTH)Lepton görüntü genişliğini piksel cinsinden döndürür.
ioctl(IOCTL_LEPTON_GET_HEIGHT)Lepton görüntü yüksekliğini piksel cinsinden döndürür.
ioctl(IOCTL_LEPTON_GET_RADIOMETRY)Lepton’un türünü (radyometrik olup olmadığını) bir int olarak döndürür.
ioctl(IOCTL_LEPTON_GET_REFRESH)Lepton’un yenileme hızını Hz cinsinden döndürür.
ioctl(IOCTL_LEPTON_GET_RESOLUTION)Lepton’un ADC çözünürlüğünü bit cinsinden döndürür.
ioctl(IOCTL_LEPTON_RUN_COMMAND, cmd)Bir FLIR Lepton SDK komutu çalıştırır.
cmd, SDK tarafından tanımlanan 16 bitlik komut kimliğidir.ioctl(IOCTL_LEPTON_SET_ATTRIBUTE, attr_id, payload)Bir Lepton SDK özniteliğini yazar.
attr_id16 bitlik öznitelik kimliğidir;payload, uzunluğu 16 bitin katı olması gereken birbytes/bytearraydeğeridir.ioctl(IOCTL_LEPTON_GET_ATTRIBUTE, attr_id, words)Bir Lepton SDK özniteliğini okur.
attr_id16 bitlik öznitelik kimliğidir;wordsokunacak 16 bitlik kelime sayısıdır. Birbytearraydöndürür.ioctl(IOCTL_LEPTON_GET_FPA_TEMP)Lepton odak düzlemi dizisi sıcaklığını Santigrat derece cinsinden döndürür.
ioctl(IOCTL_LEPTON_GET_AUX_TEMP)Lepton yardımcı sıcaklığını Santigrat derece cinsinden döndürür.
ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled)ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled, high_temp_enabled)Lepton’u AGC ve doğrudan sıcaklık çıkışı arasında değiştirir.
measurement_enabled=Truedoğrudan sıcaklık çıkışını etkinleştirir. İsteğe bağlıhigh_temp_enabledbayrağı yüksek sıcaklık aralığını seçer.ioctl(IOCTL_LEPTON_GET_MODE)Bir 2’li tuple
(measurement_enabled, high_temp_enabled)döndürür.ioctl(IOCTL_LEPTON_SET_RANGE, (min_celsius, max_celsius))Ölçüm modu etkinleştirildiğinde
0..255aralığına eşlenen sıcaklık aralığını ayarlar.ioctl(IOCTL_LEPTON_GET_RANGE)Geçerli
(min_celsius, max_celsius)aralığını döndürür.
Himax HM01B0 – hareket tespiti:
ioctl(IOCTL_HIMAX_MD_ENABLE, enable)HM01B0’ın sensör üzerindeki hareket tespiti bloğunu etkinleştirir (
True) veya devre dışı bırakır (False).ioctl(IOCTL_HIMAX_MD_WINDOW, (x, y, w, h))ioctl(IOCTL_HIMAX_MD_WINDOW, (w, h))HM01B0’da hareket tespiti penceresini ayarlar.
ioctl(IOCTL_HIMAX_MD_THRESHOLD, threshold)Hareket tespiti eşiğini ayarlar (
0–255).ioctl(IOCTL_HIMAX_MD_CLEAR)Hareket tespiti kesme mandalını temizler.
ioctl(IOCTL_HIMAX_OSC_ENABLE, enable)HM01B0’ın dahili osilatörünü etkinleştirir (
True) veya devre dışı bırakır (False).
Prophesee GENX320 – olay sensörü:
ioctl(IOCTL_GENX320_SET_BIASES, preset)Bir bias ön ayarı uygular.
preset,GENX320_BIASES_*sabitlerinden biridir.ioctl(IOCTL_GENX320_SET_BIAS, bias, value)Tek bir bias ayarlar.
bias,GENX320_BIAS_*sabitlerinden biridir;valuetamsayı ayardır.ioctl(IOCTL_GENX320_SET_AFK, enable)ioctl(IOCTL_GENX320_SET_AFK, enable, freq_low_hz, freq_high_hz)Titreşim önleyici filtreyi yapılandırır.
enablebir bool’dur; isteğe bağlı frekans argümanları filtre geçiş bandını ayarlar.ioctl(IOCTL_GENX320_SET_STC, mode)ioctl(IOCTL_GENX320_SET_STC, mode, arg1[, arg2])Uzamsal-zamansal kontrast filtresini yapılandırır.
mode,GENX320_STC_*sabitlerinden biridir; en fazla iki ek argüman moda özgüdür.ioctl(IOCTL_GENX320_SET_MODE, mode)ioctl(IOCTL_GENX320_SET_MODE, mode, evt_res)Sensörü çerçeve ve olay modları arasında değiştirir.
mode,GENX320_MODE_*sabitlerinden biridir. Olay modu içinevt_res,IOCTL_GENX320_READ_EVENTSçağrısına geçirilen olay arabelleğinin satır ekseni uzunluğudur.ioctl(IOCTL_GENX320_READ_EVENTS, buf)Olayları
bufiçine okur; bu,(EVT_res, 6)şeklinde biruint16ndarrayolupEVT_res1024 ile 65536 arasında ikinin bir kuvvetidir. Sütunlar şunlardır:[0]– olay türü (PIX_OFF_EVENT/PIX_ON_EVENT/ tetikleyici).[1]– saniye.[2]– milisaniye.[3]– mikrosaniye.[4]–xkoordinatı.[5]–ykoordinatı.
Yazılan olay sayısını döndürür.
ioctl(IOCTL_GENX320_READ_EVENTS_RAW)GENX320’den gelen ham olay çerçevesini içeren bir
image.Imagedöndürür.ioctl(IOCTL_GENX320_CALIBRATE, iterations, sigma)Gürültüsü normal dağılımdan
sigmastandart sapmadan daha fazla olan pikselleri kapatır.iterations, kalibrasyon geçişlerinin tamsayı sayısıdır. Devre dışı bırakılan piksellerin sayısını döndürür.
- color_palette(palette: int | None = None) int | None¶
FLIR Lepton gri tonlamadan RGB565’e dönüştürme veya GENX320 olay görselleştirmesi gibi şeyler için kullanılacak renk paletini ayarlar.
image.PALETTE_RAINBOW,image.PALETTE_IRONBOWve (desteklendiğinde)image.PALETTE_DEPTH,image.PALETTE_EVT_DARKveyaimage.PALETTE_EVT_LIGHTdeğerlerinden biri.Argümansız çağrıldığında geçerli ayarı döndürür.
Fonksiyonlar¶
Sabitler¶
- csi.BINARY: int¶
BINARY (bit eşlem) piksel formatı. Her piksel 1 bittir. Maske depolama için kullanışlıdır;
image.Image()ile kullanılabilir.
- csi.RGB565: int¶
RGB565 piksel formatı. Her piksel 16 bittir (5 bit kırmızı, 6 bit yeşil, 5 bit mavi).
- csi.YUV422: int¶
YUV422 piksel formatı. Her piksel, iki Y değeri arasında paylaşılan dönüşümlü 8 bitlik U/V renk değerlerinin (Y1, U, Y2, V, …) izlediği gri tonlamalı 8 bitlik bir Y değeri olarak depolanır. Yalnızca bazı görüntü işleme yöntemleri YUV422 ile çalışır.
- csi.JPEG: int¶
JPEG modu. Kamera modülü sıkıştırılmış JPEG görüntüleri çıkarır. JPEG kalitesini kontrol etmek için
CSI.qualitykullanın. Yalnızca OV2640/OV5640 kameraları için çalışır.
- csi.NORMAL: int¶
CSI.special_effectiçin Normal modu.
- csi.NEGATIVE: int¶
CSI.special_effectiçin Negatif modu.
- csi.SXGA: int¶
Kamera sensörü için 1280x1024 çözünürlük. Yalnızca OV2640/OV5640 kameraları için çalışır.
- csi.UXGA: int¶
Kamera sensörü için 1600x1200 çözünürlük. Yalnızca OV2640/OV5640 kameraları için çalışır.
- csi.IOCTL_GET_TRIGGERED_MODE: int¶
MT9V034 için tetiklemeli mod durumunu alır.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_SET_FOV_WIDE: int¶
CSI.framesizeyönteminin FPS yerine görüş alanı için optimizasyon yapmasını etkinleştirir.CSI.ioctlbölümüne bakın.
- csi.IOCTL_GET_FOV_WIDE: int¶
CSI.framesizeyönteminin FPS yerine görüş alanı için optimizasyon yapıp yapmadığını döndürür.CSI.ioctlbölümüne bakın.
- csi.IOCTL_TRIGGER_AUTO_FOCUS: int¶
OV5640 FPC kamera modülünde otomatik odaklamayı tetikler.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_PAUSE_AUTO_FOCUS: int¶
OV5640 FPC kamera modülü için otomatik odaklamayı (çalışırken) duraklatır.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_RESET_AUTO_FOCUS: int¶
OV5640 FPC kamera modülü için otomatik odaklamayı varsayılana sıfırlar.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_WAIT_ON_AUTO_FOCUS: int¶
OV5640 FPC kamera modülünde otomatik odaklamanın bitmesini bekler.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_SET_NIGHT_MODE: int¶
Gece modunu açar veya kapatır. Pozlamayı dinamik olarak artırmak için çerçeve hızını azaltır.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_GET_NIGHT_MODE: int¶
Gece modunun etkin olup olmadığını döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_WIDTH: int¶
FLIR Lepton görüntü çözünürlüğü genişliğini piksel cinsinden döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_HEIGHT: int¶
FLIR Lepton görüntü çözünürlüğü yüksekliğini piksel cinsinden döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_RADIOMETRY: int¶
FLIR Lepton türünü (radyometrik olup olmadığını) döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_REFRESH: int¶
FLIR Lepton yenileme hızını Hz cinsinden döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_RESOLUTION: int¶
FLIR Lepton ADC çözünürlüğünü bit cinsinden döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_RUN_COMMAND: int¶
FLIR Lepton SDK’sından 16 bitlik bir komut yürütür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_SET_ATTRIBUTE: int¶
FLIR Lepton SDK’sından bir FLIR Lepton özniteliğini ayarlar.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_ATTRIBUTE: int¶
FLIR Lepton SDK’sından bir FLIR Lepton özniteliğini alır.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_FPA_TEMP: int¶
FLIR Lepton FPA sıcaklığını Santigrat cinsinden alır.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_AUX_TEMP: int¶
FLIR Lepton AUX sıcaklığını Santigrat cinsinden alır.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_SET_MODE: int¶
FLIR Lepton sürücüsünü her pikselin bir sıcaklık değeri olduğu bir moda ayarlar.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_MODE: int¶
FLIR Lepton sensörü için ölçüm modunun etkin olup olmadığını döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_SET_RANGE: int¶
Ölçüm modunda piksel değerlerine eşlenen sıcaklık aralığını ayarlar.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_LEPTON_GET_RANGE: int¶
Ölçüm modu için kullanılan sıcaklık aralığını döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_HIMAX_MD_ENABLE: int¶
HM01B0’daki hareket tespiti kesmesini kontrol eder.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_HIMAX_MD_WINDOW: int¶
HM01B0’daki hareket tespiti penceresini ayarlar.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_HIMAX_MD_THRESHOLD: int¶
HM01B0’daki hareket tespiti eşiğini ayarlar.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_HIMAX_MD_CLEAR: int¶
HM01B0’daki hareket tespiti kesmesini temizler.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_HIMAX_OSC_ENABLE: int¶
HM01B0’daki dahili osilatörü kontrol eder.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_GET_RGB_STATS: int¶
Kamera sensöründen RGB istatistiklerini döndürür.
CSI.ioctlbölümüne bakın.
- csi.IOCTL_GENX320_SET_BIASES: int¶
GENX320 sensör bias’larını
GENX320_BIASES_*ön ayarlarından birine ayarlar.CSI.ioctlbölümüne bakın.CSI.resetsonrasında sürücücsi.GENX320_BIASES_DEFAULTdeğilcsi.GENX320_BIASES_LOW_NOISEuygular — uygulama daha fazla hassasiyet veya bant genişliği gerektirdiğinde farklı bir ön ayara geçmek için bu ioctl’yi kullanın.
- csi.GENX320_BIASES_DEFAULT: int¶
GenX320 veri sayfası varsayılanları — genel sahneler için dengeli hassasiyet, gürültü ve bant genişliği.
- csi.GENX320_BIASES_LOW_LIGHT: int¶
Düşük ışık koşulları için ayarlanmıştır — daha yüksek hassasiyet için her iki kontrast eşiği gevşetilmiş, FO düşürülmüş, yavaş parlaklık değişiklikleri yine de kaydedilsin diye HPF devre dışı bırakılmıştır.
- csi.GENX320_BIASES_ACTIVE_MARKER: int¶
Yüksek kontrastlı yanıp sönen LED’leri (aktif işaretçiler) izlemek için ayarlanmıştır — yalnızca keskin geçişlerin tetiklemesi için kontrast eşikleri yükseltilmiş, bant genişliğini en üst düzeye çıkarmak ve yavaş ortam kaymasını reddetmek için FO ve HPF yüksek tutulmuş, her yanıp sönme kenarı yakalansın diye REFR=0 ayarlanmıştır.
- csi.GENX320_BIASES_LOW_NOISE: int¶
Sürücü varsayılanı —
DEFAULTdeğerine göre daha düşük hassasiyet (yükseltilmiş kontrast eşikleri) ve daha az arka plan gürültüsü etkinliği için daha düşük bir FO. Yanlış olayların baskın olacağı statik veya yavaş sahneler için en iyisidir.
- csi.GENX320_BIASES_HIGH_SPEED: int¶
Hızlı hareketli sahneler için ayarlanmıştır — daha geniş piksel bant genişliği için daha yüksek FO, yavaş değişiklikleri reddetmek için daha yüksek HPF, her olaydan sonra okumanın doygunluğa ulaşmaması için daha uzun bir ölü süre sağlamak amacıyla daha yüksek REFR.
- csi.IOCTL_GENX320_SET_BIAS: int¶
Tek bir GENX320 sensör bias’ını bir DAC değerine ayarlar. Bir
GENX320_BIAS_*sabiti (csi.GENX320_BIAS_DIFF_OFF,csi.GENX320_BIAS_DIFF_ON,csi.GENX320_BIAS_FO,csi.GENX320_BIAS_HPFveyacsi.GENX320_BIAS_REFR) ve bir tamsayı DAC değeri geçirin. Her bias bağımsızdır — bir ön ayar uyguladıktan sonra yalnızca ihtiyaç duyduğunuz bias’ları ince ayarlamak için bu ioctl’yi tekrar tekrar çağırın.CSI.ioctlbölümüne bakın.
- csi.GENX320_BIAS_DIFF_OFF: int¶
Negatif karşılaştırıcı kontrast eşiği — bir
csi.PIX_OFF_EVENTtetiklenmeden önce bir pikselin ne kadar kararması gerektiğini kontrol eder. Daha düşük değer = daha hassas (daha fazla olay).
- csi.GENX320_BIAS_DIFF_ON: int¶
Pozitif karşılaştırıcı kontrast eşiği — bir
csi.PIX_ON_EVENTtetiklenmeden önce bir pikselin ne kadar parlaklaşması gerektiğini kontrol eder. Daha düşük değer = daha hassas (daha fazla olay).
- csi.GENX320_BIAS_FO: int¶
Piksel alçak geçiren kesme frekansı — piksel bant genişliğini (hız/gecikme) arka plan gürültüsü etkinliğine karşı dengeler. Daha yüksek değer = daha hızlı piksel tepkisi, daha fazla gürültü.
- csi.GENX320_BIAS_HPF: int¶
Piksel yüksek geçiren kesme frekansı — yavaş parlaklık değişikliklerini reddeder. Daha yüksek değer = daha yavaş değişiklikler filtrelenir (yalnızca hızlı geçişler kaydedilir).
- csi.GENX320_BIAS_REFR: int¶
Piksel refrakter periyodu — bir piksel bir olay yaydıktan sonra tekrar tetiklenemeyeceği ölü süre. Daha yüksek değer = daha uzun ölü süre, meşgul bir pikselden daha az olay.
- csi.IOCTL_GENX320_SET_AFK: int¶
GENX320 titreşim önleyici (AFK) filtresini ayarlar; bu filtre, periyodik bir frekans bandında değişen piksellerden gelen olayları reddeder (floresan aydınlatma, LED tahrikli ekranlar vb.).
enable(etkinleştirmek için 1, devre dışı bırakmak için 0) ve etkinleştirirken bant kenarlarını hertz cinsinden geçirin:(enable, freq_low_hz, freq_high_hz).CSI.ioctlbölümüne bakın.
- csi.IOCTL_GENX320_SET_STC: int¶
GENX320 uzamsal-zamansal kontrast (STC) filtre modunu ayarlar. Bir
GENX320_STC_*sabiti (csi.GENX320_STC_DISABLE,csi.GENX320_STC_ONLY,csi.GENX320_STC_TRAIL_ONLY,csi.GENX320_STC_TRAIL) ve ardından modun gerektirdiği eşik(ler)i (milisaniye cinsinden) geçirin.CSI.ioctlbölümüne bakın.
- csi.GENX320_STC_ONLY: int¶
Bir burst’ün ikinci olayını tutar; ilk olayı ve sonraki olayları atar. Bir parametre alır, milisaniye cinsinden
stc_threshold— aynı pikselde önceki bir olayın o penceresi içindeki olaylar aynı burst’ün parçası olarak kabul edilir.
- csi.GENX320_STC_TRAIL_ONLY: int¶
Bir burst’ün ilk olayını tutar;
trail_thresholdgeçene kadar aynı pikseldeki sonraki olayları atar. Bir parametre alır, milisaniye cinsindentrail_threshold.
- csi.GENX320_STC_TRAIL: int¶
Bir burst’ün ilk olayını ve sonraki kenarları tutar —
csi.GENX320_STC_ONLYvecsi.GENX320_STC_TRAIL_ONLYözelliklerini birleştirir. İki parametre alır,stc_thresholdvetrail_threshold(her ikisi de ms); sensör ikisinin yaklaşık 13:1 oranı içinde kalmasını gerektirir.
- csi.IOCTL_GENX320_SET_MODE: int¶
GENX320 çalışma modunu ayarlar. Çip üzerindeki olay histogramı için
csi.GENX320_MODE_HISTO(kamera yapılandırılmış çerçeve hızında normal bir gri tonlamalı kamera gibi davranır) veya ham olay akışı içincsi.GENX320_MODE_EVENTve ardından olayndarray‘inin satır ekseni uzunluğunu (1024 ile 65536 arasında ikinin bir kuvveti) geçirin.CSI.ioctlbölümüne bakın.
- csi.GENX320_MODE_HISTO: int¶
Histogram modu — olaylar çip üzerinde piksel başına gözlere biriktirilir ve yapılandırılmış hızda (~20-350 FPS) 320x320 gri tonlamalı bir çerçeve olarak raporlanır. Kamera normal bir kamera gibi göründüğünden, tüm standart görüntü işleme rutinleri doğrudan çalışır.
- csi.GENX320_MODE_EVENT: int¶
Olay modu — çip üzerindeki histogramı atlar ve önceden gözelere bölünmüş bir çerçeve yerine tam zamansal ayrıntıya ihtiyaç duyan uygulamalar için ham olayları mikrosaniye zaman damgalarıyla bir numpy
ndarray‘ine akıtır.
- csi.IOCTL_GENX320_READ_EVENTS: int¶
Ham olayları
(EVT_res, 6)şeklinde bir uint16ndarrayiçine okur (EVT_res,csi.IOCTL_GENX320_SET_MODEçağrısına geçirilen arabellek boyutuyla eşleşir). Sütunlar şunlardır:[0]olay türü (csi.PIX_OFF_EVENT,csi.PIX_ON_EVENT,csi.EXT_TRIGGER_RISING/FALLING,csi.RST_TRIGGER_RISING/FALLING),[1]saniye zaman damgası,[2]milisaniye,[3]mikrosaniye,[4]X koordinatı (0-319),[5]Y koordinatı (0-319). Arabelleğe yazılan olay sayısını döndürür ve bu sayının ötesindeki eski satırlara dokunmaz.CSI.ioctlbölümüne bakın.
- csi.IOCTL_GENX320_CALIBRATE: int¶
Sıcak pikselleri otomatik olarak devre dışı bırakır — statik bir sahnede bile sahte tetiklenen pikseller. Sürücü 320x320 piksel başına bir isabet sayımı oluşturur, ortalamayı ve standart sapmayı hesaplar ve sayımı
mean + sigma * stddevdeğerini aşan her pikseli devre dışı bırakır. Bir olay sayısı bütçesi (istatistikler hesaplanmadan önce sayılacak olaylar — yüksek = daha güvenilir tahmin, daha yavaş; ~10000 iyi bir varsayılandır) ve bir sigma float’ı (düşük = daha agresif, ~0.5 varsayılan) geçirin. Devre dışı bırakılan piksellerin sayısını döndürür. Hareket kaynaklı olayların aslında sorunsuz olan piksellere karşı sayılmaması için önce kamerayı statik bir sahneye yöneltin.CSI.ioctlbölümüne bakın.
- csi.IOCTL_GENX320_READ_EVENTS_RAW: int¶
GENX320’den olayların hâlâ çipin yerel paketlenmiş kodlamasında olduğu ham bir olay çerçevesi
image.Imagedöndürür — ham akışı kamera üzerinde işlemek yerine çevrimdışı çözme için bir bilgisayara iletmek istiyorsanız kullanışlıdır.CSI.ioctlbölümüne bakın.
- csi.PIX_OFF_EVENT: int¶
GENX320 olay türü (sütun
[0]) — bir piksel bir parlaklık azalması tespit etti (negatif kontrast eşiği aşıldı). Sütun[4]/[5]pikselin X/Y değerini taşır.
- csi.PIX_ON_EVENT: int¶
GENX320 olay türü (sütun
[0]) — bir piksel bir parlaklık artışı tespit etti (pozitif kontrast eşiği aşıldı). Sütun[4]/[5]pikselin X/Y değerini taşır.
- csi.RST_TRIGGER_RISING: int¶
GENX320 olay türü (sütun
[0]) — piksel sıfırlama tetikleyicisi, yükselen kenar. X/Y kullanılmaz. Şu anda aygıt yazılımı tarafından oluşturulmaz.
- csi.RST_TRIGGER_FALLING: int¶
GENX320 olay türü (sütun
[0]) — piksel sıfırlama tetikleyicisi, düşen kenar. X/Y kullanılmaz. Şu anda aygıt yazılımı tarafından oluşturulmaz.