kelas Image -- Objek Image

Image adalah tipe data utama dari modul image -- sebuah buffer piksel dalam memori yang digunakan oleh setiap rutinitas gambar, setiap filter, setiap transformasi geometris, dan setiap rutinitas ekstraksi fitur. Setiap bingkai yang keluar dari csi.CSI.snapshot() adalah Image; begitu juga setiap bingkai yang dimuat dari disk, didekode dari JPEG atau PNG, dialokasikan dari ndarray bergaya numpy, atau dibuat sebagai kanvas gambar kosong.

Sebuah Image digambarkan oleh tiga angka -- width, height, dan pixformat -- ditambah sebuah buffer piksel yang berkesinambungan. Format piksel menentukan tata letak dalam memori dan operasi yang tersedia:

  • BINARY (1 bpp) -- 1 bit per piksel; digunakan oleh morfologi dan pembuatan ambang batas.

  • GRAYSCALE (8 bpp) -- 1 byte per piksel; format standar untuk sebagian besar CV (AprilTag, tepi, ORB, aliran optis).

  • RGB565 (16 bpp) -- 2 byte per piksel (5R/6G/5B); format warna bawaan.

  • BAYER (8 bpp) -- data mosaik Bayer mentah langsung dari sensor. Sebagian besar metode CV tidak tersedia pada citra Bayer; lakukan debayer ke GRAYSCALE / RGB565 terlebih dahulu.

  • YUV422 (16 bpp) -- warna dengan chroma-subsampling 4:2:2, dua byte per piksel. Hanya sebagian metode yang bekerja langsung pada YUV422.

  • JPEG / PNG -- buffer terkompresi. Operasi tingkat piksel memerlukan to_grayscale() atau to_rgb565() terlebih dahulu.

Asal Objek Image

Ada empat cara untuk mendapatkan sebuah Image:

  • Dari buffer bingkai kamera -- csi.CSI().snapshot() mengembalikan bingkai yang ditangkap berikutnya. Objek yang dikembalikan adalah pembungkus tipis di sekitar memori buffer-bingkai kamera, sehingga operasi gambar/filter apa pun padanya akan mengubah apa yang dikirim ke pratinjau IDE dan tampilan.

  • Dari sebuah file -- teruskan string path ke konstruktor Image. BMP, PGM, PPM, JPEG, dan PNG didekode langsung ke RAM (atau ke buffer bingkai kamera jika copy_to_fb=True).

  • Dari sebuah ndarray -- teruskan array float32 (h, w) atau (h, w, 3). Piksel diskalakan dari 0.0 -- 255.0 menjadi GRAYSCALE atau RGB565.

  • Kosong -- teruskan (width, height, pixformat) untuk mengalokasikan permukaan gambar yang diisi nol. Untuk format piksel terkompresi (JPEG / PNG) diperlukan argumen buffer= yang berisi aliran byte terkompresi.

Loop tangkap-proses-tampilkan yang umum

import csi
import image

sensor = csi.CSI()
sensor.reset()
sensor.pixformat(csi.RGB565)
sensor.framesize(csi.QVGA)

while True:
    img = sensor.snapshot()                    # capture
    for blob in img.find_blobs([(30, 100, 15, 127, 15, 127)]):  # process
        img.draw_rectangle(blob.rect)          # annotate
    # img is shown automatically in the IDE preview and on any
    # attached display.

Pengindeksan, panjang, iterasi, dan akses seperti-bytes

  • Pengindeksan -- img[i] membaca piksel i (linier, row-major). img[i] = value menulisnya. Piksel Grayscale / Bayer adalah bilangan bulat 8-bit, piksel RGB565 / YUV422 adalah bilangan bulat 16-bit yang dikemas, piksel biner adalah 0 / 1. Untuk citra JPEG / PNG, ruang indeks adalah aliran byte terkompresi, bukan piksel.

  • Panjang -- len(img) mengembalikan jumlah piksel untuk format yang tidak terkompresi atau jumlah byte untuk format terkompresi.

  • Iterasi -- for px in img: ... melintasi array piksel dalam urutan yang sama dengan pengindeksan [].

  • Seperti-Bytes -- Image mengekspos protokol buffer baca, sehingga Anda dapat meneruskannya langsung ke apa pun yang membutuhkan bytes / bytearray (misalnya uart.write(img), socket.send(img), hashlib.sha256(img)). Gunakan bytearray() sebagai gantinya untuk mendapatkan tampilan baca/tulis.

Flag Hint

Banyak metode Image menerima argumen hint yang merupakan OR logis dari flag-flag berikut:

class image.Image(arg: str | int | ndarray, height: int = -1, pixformat: int = -1, *, buffer: bytes | bytearray | memoryview | None = None, copy_to_fb: bool = False)

Jika arg adalah string maka ini akan membuat objek citra baru dari file di path arg. Mendukung pemuatan file citra bmp/pgm/ppm/jpg/jpeg/png dari disk. Jika copy_to_fb bernilai true, citra akan disalin ke buffer bingkai versus dialokasikan di heap.

Jika arg adalah ndarray maka ini akan membuat objek citra baru dari ndarray. Objek ndarray dengan bentuk (w, h) diperlakukan sebagai citra grayscale, (w, h, 3) diperlakukan sebagai citra RGB565. Hanya ndarrays dengan titik float32 yang didukung saat ini. Saat membuat citra dengan cara ini, jika Anda meneruskan argumen buffer maka akan digunakan untuk menyimpan data citra versus mengalokasikan ruang di heap. Jika copy_to_fb bernilai true, citra disalin ke buffer bingkai versus dialokasikan di heap atau menggunakan buffer.

Jika arg adalah int, maka dianggap sebagai lebar citra baru dan nilai height serta nilai format harus menyusul untuk membuat objek citra baru yang kosong. format dapat berupa nilai pixformat citra apa pun seperti image.GRAYSCALE. Citra akan diinisialisasi ke semua nol. Perlu diperhatikan bahwa nilai buffer diharapkan untuk format citra terkompresi. buffer dianggap sebagai sumber data citra untuk membuat citra dengan cara ini. Jika digunakan dengan copy_to_fb data dari buffer disalin ke buffer bingkai. Jika Anda ingin membuat citra JPEG dari objek JPEG bytes() atau bytearray(), Anda dapat meneruskan width, height, image.JPEG untuk JPEG beserta mengatur buffer ke aliran byte JPEG untuk membuat citra JPEG.

Citra mendukung notasi "[]". Lakukan image[index] = 8/16-bit value untuk menetapkan piksel citra atau image[index] untuk mendapatkan piksel citra yang akan berupa nilai 8-bit untuk citra grayscale/bayer atau nilai 16-bit untuk citra RGB565/YUV. Citra biner mengembalikan nilai 1-bit.

Untuk citra JPEG, notasi "[]" memungkinkan Anda mengakses blob JPEG terkompresi sebagai byte-array. Membaca dan menulis ke array data ini bersifat opak karena citra JPEG adalah aliran byte terkompresi.

Citra juga mendukung operasi buffer baca. Anda dapat meneruskan citra ke berbagai fungsi MicroPython seolah-olah citra tersebut adalah objek byte-array. Khususnya, jika Anda ingin mengirimkan sebuah citra, Anda cukup meneruskannya ke fungsi tulis UART/SPI/I2C untuk dikirimkan secara otomatis.

Metode Dasar

width() int

Mengembalikan lebar citra dalam piksel.

height() int

Mengembalikan tinggi citra dalam piksel.

format() int

Mengembalikan image.GRAYSCALE untuk citra grayscale, image.RGB565 untuk citra RGB565, image.BAYER untuk citra pola bayer, dan image.JPEG untuk citra JPEG.

size() int

Mengembalikan ukuran citra dalam byte.

bytearray() bytearray

Mengembalikan objek bytearray yang menunjuk ke data citra untuk akses baca/tulis tingkat byte.

Catatan

Objek citra secara otomatis dilempar sebagai objek bytes ketika diteruskan ke driver MicroPython yang memerlukan objek seperti bytes. Ini adalah akses hanya-baca. Panggil bytearray() untuk mendapatkan akses baca/tulis.

get_pixel(x: int, y: int, rgbtuple: bool | None = None) int | Tuple[int, int, int]

Untuk citra grayscale: Mengembalikan nilai piksel grayscale pada lokasi (x, y). Untuk citra RGB565: Mengembalikan tupel piksel RGB888 (r, g, b) pada lokasi (x, y). Untuk citra pola bayer: Mengembalikan nilai piksel pada lokasi (x, y).

Mengembalikan None jika x atau y berada di luar citra.

x dan y dapat diteruskan secara terpisah atau sebagai tupel.

rgbtuple jika True menyebabkan metode ini mengembalikan tupel RGB888. Jika tidak, metode ini mengembalikan nilai integer dari piksel yang mendasarinya. Yaitu untuk citra RGB565 metode ini mengembalikan nilai RGB565. Defaultnya True untuk citra RGB565 dan False untuk yang lainnya.

Tidak didukung pada citra terkompresi.

Catatan

Image.get_pixel() dan Image.set_pixel() adalah satu-satunya metode yang memungkinkan Anda memanipulasi citra pola bayer. Citra pola bayer adalah citra harfiah di mana piksel dalam citra adalah R/G/R/G/dll. untuk baris genap dan G/B/G/B/dll. untuk baris ganjil. Setiap piksel berukuran 8-bit. Jika Anda memanggil metode ini dengan rgbtuple diatur maka Image.get_pixel() akan melakukan debayer citra sumber pada lokasi piksel tersebut dan mengembalikan tupel RGB888 yang valid untuk lokasi piksel tersebut.

set_pixel(x: int, y: int, pixel: int | Tuple[int, int, int]) Image

Untuk citra grayscale: Mengatur piksel pada lokasi (x, y) ke nilai grayscale pixel. Untuk citra RGB565: Mengatur piksel pada lokasi (x, y) ke tupel RGB888 (r, g, b) pixel. Untuk citra pola bayer: Mengatur nilai piksel pada lokasi (x, y) ke nilai pixel.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

x dan y dapat diteruskan secara terpisah atau sebagai tupel.

pixel dapat berupa tupel RGB888 (r, g, b) atau nilai piksel yang mendasarinya (yaitu nilai RGB565 untuk citra RGB565 atau nilai 8-bit untuk citra grayscale).

Tidak didukung pada citra terkompresi.

Catatan

Image.get_pixel() dan Image.set_pixel() adalah satu-satunya metode yang memungkinkan Anda memanipulasi citra pola bayer. Citra pola bayer adalah citra harfiah di mana piksel dalam citra adalah R/G/R/G/dll. untuk baris genap dan G/B/G/B/dll. untuk baris ganjil. Setiap piksel berukuran 8-bit. Jika Anda memanggil metode ini dengan tupel RGB888, nilai grayscale dari tupel RGB888 tersebut diekstrak dan ditetapkan ke lokasi piksel.

Metode Konversi

to_ndarray(dtype: str, buffer: bytes | bytearray | memoryview | None = None) ndarray

Mengembalikan objek ndarray yang dibuat dari citra. Saat ini hanya berfungsi untuk citra GRAYSCALE atau RGB565.

dtype dapat berupa b, B, atau f untuk membuat ndarray bertanda 8-bit, tidak bertanda 8-bit, atau titik mengambang 32-bit. Citra GRAYSCALE dikonversi langsung ke objek ndarray tidak bertanda 8-bit. Untuk objek ndarray bertanda 8-bit, nilai (0:255) dipetakan ke (-127:128). Untuk objek ndarray float 32-bit, nilai dipetakan ke (0.0:255.0). Citra RGB565 dikonversi ke objek ndarray 3-channel dan proses yang sama seperti yang dijelaskan di atas untuk citra GRAYSCALE diterapkan ke setiap channel tergantung pada dtype. Perhatikan bahwa dtype juga menerima nilai integer (misalnya ord()) dari b, B, dan f.

buffer jika tidak None adalah objek bytearray yang digunakan sebagai buffer untuk ndarray. Jika None, buffer baru dialokasikan di heap untuk menyimpan data citra ndarray. Anda dapat menggunakan argumen buffer untuk mengalokasikan ndarray langsung di buffer yang sudah dialokasikan sebelumnya, sehingga menghemat alokasi heap dan operasi salin.

ndarray yang dikembalikan memiliki bentuk (height, width) untuk citra GRAYSCALE dan (height, width, 3) untuk citra RGB565.

to_bitmap(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi citra bitmap (1 bit per piksel).

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Catatan

Citra bitmap seperti citra grayscale dengan hanya dua nilai piksel - 0 dan 1. Selain itu, citra bitmap dikemas sehingga hanya menyimpan 1 bit per piksel menjadikannya sangat kecil. Pustaka citra OpenMV memungkinkan citra bitmap digunakan di semua tempat di mana citra sensor.GRAYSCALE dan sensor.RGB565 dapat digunakan. Namun, banyak operasi ketika diterapkan pada citra bitmap tidak masuk akal karena citra bitmap hanya memiliki 2 nilai. OpenMV merekomendasikan menggunakan citra bitmap untuk nilai mask dalam operasi karena cocok di heap MicroPython dengan mudah. Terakhir, nilai piksel citra bitmap 0 dan 1 diinterpretasikan sebagai hitam dan putih ketika diterapkan pada citra sensor.GRAYSCALE atau sensor.RGB565. Pustaka secara otomatis menangani konversi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_grayscale(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi citra grayscale (8-bit per piksel).

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_rgb565(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi citra RGB565 (16-bit per piksel).

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_rainbow(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_RAINBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi citra rainbow RGB565 (16-bit per piksel).

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_ironbow(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_IRONBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi citra ironbow RGB565 (16-bit per piksel).

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_depth(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_IRONBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi Citra Kedalaman RGB565 (16-bit per piksel).

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa image.PALETTE_DEPTH atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_evt_dark(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_IRONBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi Citra Peristiwa Gelap RGB565 (16-bit per piksel).

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_evt_light(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_IRONBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi Citra Peristiwa Terang RGB565 (16-bit per piksel).

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_jpeg(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False, quality: int = 90, subsampling: int = 0) Image

Mengonversi citra menjadi citra JPEG.

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

quality mengontrol kualitas kompresi citra jpeg. Nilainya bisa antara 0 dan 100.

subsampling dapat berupa:

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

to_png(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Mengonversi citra menjadi citra PNG.

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

compress(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False, quality: int = 90, subsampling: int = 0) Image

Mengonversi citra menjadi citra JPEG.

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

quality mengontrol kualitas kompresi citra jpeg. Nilainya bisa antara 0 dan 100.

subsampling dapat berupa:

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Catatan

Image.compress adalah alias untuk Image.to_jpeg.

copy(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy_to_fb: bool = False) Image

Membuat salinan mendalam dari objek citra.

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

crop(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Memodifikasi citra di tempat tanpa mengubah tipe citra yang mendasarinya.

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

scale(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Memodifikasi citra di tempat tanpa mengubah tipe citra yang mendasarinya.

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (tidak termasuk image.BLACK_BACKGROUND yang tidak didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

copy jika True, buat salinan mendalam di heap dari citra yang telah dikonversi versus mengonversi citra asli di tempat.

copy_to_fb jika True, citra dimuat langsung ke buffer bingkai. copy_to_fb memiliki prioritas atas copy. Ini tidak memiliki efek khusus jika citra sudah ada di buffer bingkai.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Catatan

Image.scale adalah alias untuk Image.crop.

save(path: str, roi: Tuple[int, int, int, int] | None = None, quality: int = 50) Image

Menyimpan salinan citra ke sistem file di path.

Mendukung file citra bmp/pgm/ppm/jpg/jpeg. Perhatikan bahwa Anda tidak dapat menyimpan citra terkompresi jpeg ke format yang tidak terkompresi.

roi adalah persegi panjang wilayah-yang-diminati (x, y, w, h) untuk disimpan. Jika tidak ditentukan, sama dengan persegi panjang citra yang menyalin seluruh citra. Argumen ini tidak berlaku untuk citra JPEG.

quality adalah kualitas kompresi jpeg yang digunakan untuk menyimpan citra ke format jpeg jika citra belum terkompresi (0-100) (int).

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

flush() None

Memperbarui buffer bingkai di IDE dengan citra yang ada di buffer bingkai pada kamera.

Metode Menggambar

clear(mask: Image | None = None) Image

Mengatur semua piksel dalam citra ke nol (sangat cepat).

mask adalah citra lain yang digunakan sebagai mask tingkat piksel untuk operasi. Mask harus berupa citra dengan hanya piksel hitam atau putih dan harus berukuran sama dengan citra yang dioperasikan. Hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi.

draw_line(x0: int, y0: int, x1: int, y1: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1) Image

Menggambar garis dari (x0, y0) ke (x1, y1) pada citra. Anda dapat meneruskan x0, y0, x1, y1 secara terpisah atau sebagai tupel (x0, y0, x1, y1).

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

thickness mengontrol ketebalan garis dalam piksel.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_rectangle(x: int, y: int, w: int, h: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1, fill: bool = False) Image

Menggambar persegi panjang pada citra. Anda dapat meneruskan x, y, w, h secara terpisah atau sebagai tupel (x, y, w, h).

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

thickness mengontrol ketebalan garis dalam piksel.

Teruskan fill diatur ke True untuk mengisi persegi panjang.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_circle(x: int, y: int, radius: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1, fill: bool = False) Image

Menggambar lingkaran pada citra. Anda dapat meneruskan x, y, radius secara terpisah atau sebagai tupel (x, y, radius).

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

thickness mengontrol ketebalan tepi dalam piksel.

Teruskan fill diatur ke True untuk mengisi lingkaran.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_ellipse(cx: int, cy: int, rx: int, ry: int, rotation: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1, fill: bool = False) Image

Menggambar elips pada citra. Anda dapat meneruskan cx, cy, rx, ry, dan rotasi (dalam derajat) secara terpisah atau sebagai tupel (cx, yc, rx, ry, rotation).

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

thickness mengontrol ketebalan tepi dalam piksel.

Teruskan fill diatur ke True untuk mengisi elips.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_string(x: int, y: int, text: str, color: int | Tuple[int, int, int] | None = None, scale: float = 1, x_spacing: int = 0, y_spacing: int = 0, mono_space: bool = True, char_rotation: int = 0, char_hmirror: bool = False, char_vflip: bool = False, string_rotation: int = 0, string_hmirror: bool = False, string_vflip: bool = False) Image

Menggambar teks 8x10 mulai dari lokasi (x, y) dalam citra. Anda dapat meneruskan x, y secara terpisah atau sebagai tupel (x, y).

text adalah string yang akan ditulis ke citra. Akhiran baris \n, \r, dan \r\n memindahkan kursor ke baris berikutnya.

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

scale dapat ditingkatkan untuk menaikkan/menurunkan ukuran teks pada citra. Anda dapat meneruskan nilai integer atau titik mengambang yang lebih besar dari 0.

x_spacing memungkinkan Anda menambah (jika positif) atau mengurangi (jika negatif) piksel x antara karakter.

y_spacing memungkinkan Anda menambah (jika positif) atau mengurangi (jika negatif) piksel y antara karakter (untuk teks multi-baris).

mono_space defaultnya True yang memaksa teks memiliki spasi tetap. Untuk skala teks yang besar ini terlihat buruk. Atur ke False untuk mendapatkan spasi karakter lebar non-tetap yang terlihat JAUH lebih baik.

char_rotation dapat berupa 0, 90, 180, 270 untuk memutar setiap karakter dalam string sebesar jumlah ini.

char_hmirror jika True membalikkan semua karakter dalam string secara horizontal.

char_vflip jika True membalikkan semua karakter dalam string secara vertikal.

string_rotation dapat berupa 0, 90, 180, 270 untuk memutar string sebesar jumlah ini.

string_hmirror jika True membalikkan string secara horizontal.

string_vflip jika True membalikkan string secara vertikal.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_cross(x: int, y: int, color: int | Tuple[int, int, int] | None = None, size: int = 5, thickness: int = 1) Image

Menggambar tanda silang di lokasi x, y. Anda dapat meneruskan x, y secara terpisah atau sebagai tupel (x, y).

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

size mengontrol seberapa panjang garis-garis silang memanjang.

thickness mengontrol ketebalan tepi dalam piksel.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_arrow(x0: int, y0: int, x1: int, y1: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1) Image

Menggambar panah dari (x0, y0) ke (x1, y1) pada citra. Anda dapat meneruskan x0, y0, x1, y1 secara terpisah atau sebagai tupel (x0, y0, x1, y1).

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

thickness mengontrol ketebalan garis dalam piksel.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_detection(detection: Tuple[int, int, int, int, int, int], color1: int | Tuple[int, int, int] | None = None, color2: int | Tuple[int, int, int] | None = None, size: int = 5, thickness: int = 1, fill: bool = False, label: str | None = None, label_offset: Tuple[int, int] | None = None) Image

Menggambar hasil deteksi pada citra. detection adalah tupel 6 nilai (rx, ry, rw, rh, cx, cy) yang menggambarkan persegi panjang pembatas dan centroid (biasanya dikembalikan oleh kode NN atau pelacakan warna).

color1 adalah warna persegi panjang dan color2 adalah warna silang centroid. size adalah ukuran silang centroid, thickness mengontrol lebar garis luar, dan fill mengisi persegi panjang.

label jika disediakan digambar di dekat persegi panjang, diimbangi oleh label_offset (x, y).

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_edges(corners: List[Tuple[int, int]], color: int | Tuple[int, int, int] | None = None, size: int = 0, thickness: int = 1, fill: bool = False) Image

Menggambar tepi garis antara daftar sudut yang dikembalikan oleh metode seperti blob.corners. Corners adalah tupel empat nilai berisi tupel dua nilai x/y. Misalnya [(x1,y1),(x2,y2),(x3,y3),(x4,y4)].

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

size jika lebih besar dari 0 menyebabkan sudut digambar sebagai lingkaran dengan radius size.

thickness mengontrol ketebalan garis dalam piksel.

Teruskan fill diatur ke True untuk mengisi lingkaran sudut jika digambar.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

draw_image(image: Image, x: int = 0, y: int = 0, x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, mask: Image | None = None) Image

Menggambar sebuah image yang sudut kiri atasnya dimulai dari lokasi x, y. Anda dapat meneruskan x, y secara terpisah atau sebagai tupel (x, y). Metode ini secara otomatis menangani rendering citra yang diteruskan ke format piksel yang benar untuk citra tujuan sambil juga menangani pemotongan secara mulus.

Anda juga dapat meneruskan path sebagai pengganti objek citra untuk metode ini agar secara otomatis memuat citra dari disk dan menggunakannya dalam satu langkah. Misalnya draw_image("test.jpg").

x_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah x (float). Jika nilai ini negatif, citra akan dibalik secara horizontal. Perhatikan bahwa jika y_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

y_scale mengontrol seberapa besar citra yang ditampilkan diskalakan dalam arah y (float). Jika nilai ini negatif, citra akan dibalik secara vertikal. Perhatikan bahwa jika x_scale tidak ditentukan maka akan mengikuti x_scale untuk mempertahankan rasio aspek.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h) dari citra sumber yang akan digambar. Ini memungkinkan Anda mengekstrak hanya piksel di ROI untuk diskalakan dan digambar pada citra tujuan.

rgb_channel adalah channel RGB (0=R, G=1, B=2) yang akan diekstrak dari citra RGB565 (jika diteruskan) dan ditampilkan pada citra tujuan. Misalnya, jika Anda meneruskan rgb_channel=1 ini akan mengekstrak channel hijau dari citra RGB565 sumber dan menggambarnya dalam skala abu-abu pada citra tujuan.

alpha mengontrol seberapa banyak citra sumber yang dicampurkan ke citra tujuan. Nilai 255 menggambar citra sumber yang buram sementara nilai di bawah 255 menghasilkan pencampuran antara citra sumber dan tujuan. 0 menghasilkan tidak ada modifikasi pada citra tujuan.

color_palette jika tidak None dapat berupa enum palet warna atau citra RGB565 total 256 piksel yang digunakan sebagai tabel pencarian warna pada nilai grayscale dari citra sumber apa pun. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

alpha_palette jika tidak None dapat berupa citra GRAYSCALE total 256 piksel yang digunakan sebagai palet alpha yang memodulasi nilai alpha dari citra sumber yang digambar pada tingkat piksel, memungkinkan Anda mengontrol nilai alpha piksel secara tepat berdasarkan nilai grayscale mereka. Nilai piksel 255 dalam tabel pencarian alpha bersifat buram sedangkan yang kurang dari 255 menjadi lebih transparan hingga 0. Ini diterapkan setelah ekstraksi rgb_channel jika digunakan.

hint adalah OR logis dari flag yang tercantum di Flag Hint (termasuk image.BLACK_BACKGROUND yang didukung di sini).

transform adalah ndarray 3x3 yang digunakan untuk melakukan transformasi perspektif pada citra. Saat ini hanya didukung pada OpenMV Cam N6 karena memiliki GPU yang dapat melakukan ini secara hardware.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

draw_keypoints(keypoints: kp_desc | List[Tuple[int, int, int]], color: int | Tuple[int, int, int] | None = None, size: int = 10, thickness: int = 1, fill: bool = False) Image

Menggambar titik kunci dari objek keypoints pada citra. Anda juga dapat meneruskan daftar tupel tiga nilai yang berisi (x, y, rotation_angle_in_degrees) untuk menggunakan kembali metode ini dalam menggambar gliph keypoint yang merupakan lingkaran dengan garis yang menunjuk ke arah tertentu.

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

size mengontrol seberapa besar titik kunci.

thickness mengontrol ketebalan garis dalam piksel.

Teruskan fill diatur ke True untuk mengisi titik kunci.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

flood_fill(x: int, y: int, seed_threshold: float = 0.05, floating_threshold: float = 0.05, color: int | Tuple[int, int, int] | None = None, invert: bool = False, clear_background: bool = False, mask: Image | None = None) Image

Mengisi banjir suatu wilayah pada citra mulai dari lokasi x, y. Anda dapat meneruskan x, y secara terpisah atau sebagai tupel (x, y).

seed_threshold mengontrol seberapa besar perbedaan piksel mana pun di area isian dari piksel awal asli.

floating_threshold mengontrol seberapa besar perbedaan piksel mana pun di area isian dari piksel tetangganya.

color adalah tupel RGB888 untuk citra Grayscale atau RGB565. Defaultnya putih. Namun, Anda juga dapat meneruskan nilai piksel yang mendasarinya (0-255) untuk citra grayscale atau nilai RGB565 untuk citra RGB565.

Teruskan invert sebagai True untuk mewarnai ulang semua yang ada di luar area yang terhubung oleh flood-fill.

Teruskan clear_background sebagai True untuk mengolkan sisa piksel yang tidak diwarnai ulang oleh flood-fill.

mask adalah citra lain yang digunakan sebagai mask tingkat piksel untuk operasi. Mask harus berupa citra dengan hanya piksel hitam atau putih dan harus berukuran sama dengan citra yang dioperasikan. Hanya piksel yang diatur dalam mask yang dievaluasi saat mengisi banjir.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

Metode ini tidak tersedia di OpenMV Cam M4.

draw_event_histogram(array: ndarray, clear: bool = True, brightness: int = 128, contrast: int = 16) Image

Merasterisasi ndarray peristiwa (seperti yang diisi oleh csi.IOCTL_GENX320_READ_EVENTS) ke sebuah Image untuk visualisasi. Buffer citra harus berupa citra GRAYSCALE 320x320.

Untuk setiap baris csi.PIX_ON_EVENT, piksel peristiwa mendapatkan tambahan +contrast; untuk setiap baris csi.PIX_OFF_EVENT, piksel mendapatkan -contrast. Peristiwa pemicu diabaikan. Nilai piksel dibatasi pada rentang 0-255.

clear jika True mengatur ulang buffer citra ke brightness sebelum menggambar --- setiap bingkai menjadi render hanya-peristiwa yang baru. Atur ke False untuk mengakumulasi peristiwa di beberapa panggilan (berguna untuk jejak gerak eksposur panjang).

brightness mengontrol baseline abu-abu tengah tempat buffer direset ketika clear adalah True. Nilai default 128 menempatkan peristiwa ON di ujung terang dan peristiwa OFF di ujung gelap dengan ruang yang sama.

contrast mengontrol seberapa banyak setiap peristiwa menggeser pikselnya --- nilai yang lebih tinggi membuat peristiwa lebih menonjol, dengan biaya saturasi yang cepat ketika banyak peristiwa jatuh pada piksel yang sama.

Metode Masking

mask_rectangle(x: int, y: int, w: int, h: int) Image

Mengolkan bagian persegi panjang dari citra. Jika tidak ada argumen yang diberikan, metode ini mengolkan bagian tengah citra.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

mask_circle(x: int, y: int, radius: int) Image

Mengolkan bagian lingkaran dari citra. Jika tidak ada argumen yang diberikan, metode ini mengolkan bagian tengah citra.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

mask_ellipse(x: int, y: int, radius_x: int, radius_y: int, rotation_angle_in_degrees: int) Image

Mengolkan bagian berbentuk elips dari citra. Jika tidak ada argumen yang diberikan, metode ini mengolkan bagian tengah citra.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

Metode Biner

binary(thresholds: List[Tuple[int, int]], invert: bool = False, zero: bool = False, mask: Image | None = None, to_bitmap: bool = False, copy: bool = False) Image

Mengatur semua piksel dalam citra menjadi hitam atau putih tergantung pada apakah setiap piksel berada di dalam salah satu tupel ambang batas dalam thresholds.

thresholds adalah daftar tupel (lo, hi) untuk citra grayscale, atau tupel (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) untuk citra RGB565. Nilai min/max yang tertukar diperbaiki secara otomatis; komponen yang hilang default ke rentang maksimum.

invert membalikkan pencocokan ambang batas.

zero jika True, mengolkan piksel yang diambang dan membiarkan yang lain tidak diubah.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

to_bitmap jika True, mengonversi data citra ke bitmap 1-bit-per-piksel. Untuk citra yang sangat kecil ini mungkin memerlukan copy=True.

copy jika True, mengembalikan citra baru di heap alih-alih memodifikasi citra sumber.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

invert() Image

Membalikkan semua nilai piksel dalam citra (setiap piksel menjadi 255 - pixel untuk channel 8-bit).

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

b_and(image: Image, mask: Image | None = None) Image

Melakukan AND logis pada citra ini dengan citra lain.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

b_nand(image: Image, mask: Image | None = None) Image

Melakukan NAND logis pada citra ini dengan citra lain.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

b_or(image: Image, mask: Image | None = None) Image

Melakukan OR logis pada citra ini dengan citra lain.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

b_nor(image: Image, mask: Image | None = None) Image

Melakukan NOR logis pada citra ini dengan citra lain.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

b_xor(image: Image, mask: Image | None = None) Image

Melakukan XOR logis pada citra ini dengan citra lain.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

b_xnor(image: Image, mask: Image | None = None) Image

Melakukan XNOR logis pada citra ini dengan citra lain.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

Metode ISP

awb(max: bool = False) Image

Melakukan keseimbangan putih otomatis pada citra menggunakan algoritma gray-world. Beroperasi pada citra RAW Bayer atau RGB565. Tidak berpengaruh pada citra biner/grayscale.

max jika True, menggunakan algoritma white-patch sebagai gantinya.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau yuv.

ccm(matrix: List[List[float]]) Image

Mengalikan matriks koreksi warna titik mengambang yang diteruskan dengan citra. Matriks dapat berupa 3x3 atau 3x4 (dengan kolom offset), dalam bentuk daftar bersarang atau daftar datar:

[[rr, rg, rb], [gr, gg, gb], [br, bg, bb]]
[[rr, rg, rb, ro], [gr, gg, gb, go], [br, bg, bb, bo]]
[rr, rg, rb, ro, gr, gg, gb, go, br, bg, bb, bo]

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

gamma(gamma: float = 1.0, contrast: float = 1.0, brightness: float = 0.0) Image

Menyesuaikan gamma, kontras, dan kecerahan citra.

gamma menerapkan pow(pixel, 1/gamma) setelah normalisasi. Nilai lebih besar dari 1,0 mencerahkan; kurang dari 1,0 menggelapkan.

contrast menerapkan pixel * contrast setelah normalisasi.

brightness menerapkan pixel + brightness setelah normalisasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau bayer/yuv.

gamma_corr(gamma: float = 1.0, contrast: float = 1.0, brightness: float = 0.0) Image

Alias untuk Image.gamma.

Metode Matematika

negate() Image

Alias untuk Image.invert.

replace(image: Image | None = None, **kwargs) Image

Alias untuk Image.draw_image(). Mengganti citra ini dengan image (atau mentransformasi citra ini di tempat jika image dihilangkan) menggunakan argumen kata kunci draw_image standar. Argumen transform adalah ndarray 3x3 yang menggambarkan transformasi perspektif (hanya didukung pada kamera OpenMV dengan ULAB diaktifkan).

assign(image: Image | None = None, **kwargs) Image

Alias untuk Image.replace().

set(image: Image | None = None, **kwargs) Image

Alias untuk Image.replace().

add(image: Image, mask: Image | None = None) Image

Menambahkan citra secara per-piksel ke citra ini.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

sub(image: Image, mask: Image | None = None) Image

Mengurangi image secara per-piksel dari citra ini (self - image).

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Metode ini juga menerima set lengkap argumen kata kunci Image.draw_image() (x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint, transform).

Tidak didukung pada citra terkompresi atau citra bayer.

rsub(image: Image, mask: Image | None = None) Image

Pengurangan terbalik: mengganti citra ini dengan image - self secara per-piksel. Selainnya identik dengan Image.sub().

min(image: Image, mask: Image | None = None) Image

Mengembalikan citra minimum dari dua citra secara per-piksel.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

max(image: Image, mask: Image | None = None) Image

Mengembalikan citra maksimum dari dua citra secara per-piksel.

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

difference(image: Image, mask: Image | None = None) Image

Mengembalikan citra selisih absolut antara dua citra (misalnya ||a-b||).

image dapat berupa objek citra, path ke file citra yang tidak terkompresi (bmp/pgm/ppm), atau nilai skalar (tupel RGB888 atau nilai piksel yang mendasarinya).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

blend(image: Image, x: int = 0, y: int = 0, alpha: int = 128, mask: Image | None = None, **kwargs) Image

Alias untuk Image.draw_image(). Mencampur image ke citra ini secara alpha. alpha adalah bilangan bulat 0-256; nilai yang lebih dekat ke 256 mengutamakan citra sumber. Menerima semua argumen kata kunci Image.draw_image().

histeq(adaptive: bool = False, clip_limit: float = -1, mask: Image | None = None) Image

Menjalankan ekualisasi histogram pada citra untuk menormalkan kontras dan kecerahan.

adaptive jika True, menjalankan ekualisasi histogram adaptif (lebih lambat namun umumnya lebih baik).

clip_limit membatasi kontras dalam varian adaptif (nilai kecil seperti 10 menghasilkan hasil CLAHE yang baik).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

Metode Pemfilteran

erode(size: int, threshold: int | None = None, mask: Image | None = None) Image

Menghapus piksel dari tepi area yang tersegmentasi. Melakukan konvolusi kernel ((size*2)+1)x((size*2)+1) melintasi citra, mengosongkan piksel tengah jika lebih dari threshold tetangga kosong (bertindak sebagai erosi standar jika threshold adalah None).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

dilate(size: int, threshold: int | None = None, mask: Image | None = None) Image

Menambahkan piksel ke tepi area yang tersegmentasi. Melakukan konvolusi kernel ((size*2)+1)x((size*2)+1) melintasi citra, mengatur piksel tengah jika lebih dari threshold tetangga diatur (bertindak sebagai dilatasi standar jika threshold adalah None).

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

open(size: int, threshold: int | None = None, mask: Image | None = None) Image

Melakukan erosi kemudian dilatasi. Lihat Image.erode() dan Image.dilate().

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

close(size: int, threshold: int | None = None, mask: Image | None = None) Image

Melakukan dilatasi kemudian erosi. Lihat Image.dilate() dan Image.erode().

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

top_hat(size: int, threshold: int | None = None, mask: Image | None = None) Image

Mengembalikan selisih citra antara citra dan citra yang di-Image.open()-kan.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

black_hat(size: int, threshold: int | None = None, mask: Image | None = None) Image

Mengembalikan selisih citra antara citra dan citra yang di-Image.close()-kan.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

mean(size: int, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Filter blur rata-rata standar menggunakan filter kotak.

size adalah ukuran kernel. Gunakan 1 (kernel 3x3), 2 (kernel 5x5), dll.

threshold jika True, mengambang secara adaptif output filter ke citra biner. offset menggeser binerisasi (negatif membuat lebih banyak piksel putih, positif membuat lebih sedikit). invert membalikkan output biner.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

median(size: int, percentile: float | None = 0.5, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Menjalankan filter persentil pada citra (median secara default).

size adalah ukuran kernel. Gunakan 1 (kernel 3x3), 2 (kernel 5x5), dll.

percentile adalah persentil yang dipilih dari setiap kernel (0 = min, 0.5 = median, 1.0 = max). Default ke 0,5.

threshold jika True, mengambang secara adaptif output filter ke citra biner. offset menggeser binerisasi (negatif membuat lebih banyak piksel putih, positif membuat lebih sedikit). invert membalikkan output biner.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

mode(size: int, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Mengganti setiap piksel dengan modus tetangganya. Dapat menghasilkan artefak pada tepi citra RGB karena operasi non-linear.

size adalah ukuran kernel. Gunakan 1 (kernel 3x3), 2 (kernel 5x5), dll.

threshold jika True, mengambang secara adaptif output filter ke citra biner. offset menggeser binerisasi (negatif membuat lebih banyak piksel putih, positif membuat lebih sedikit). invert membalikkan output biner.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

midpoint(size: int, bias: float | None = 0.5, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Menjalankan filter midpoint pada citra. Filter ini menemukan midpoint ((max-min)/2) dari setiap lingkungan piksel dalam citra.

size adalah ukuran kernel. Gunakan 1 (kernel 3x3), 2 (kernel 5x5), dll.

bias mengontrol pencampuran min/max. 0 hanya untuk filter min, 1,0 hanya untuk filter max. Dengan menggunakan bias Anda dapat memfilter citra dengan min/max.

threshold jika True, mengambang secara adaptif output filter ke citra biner. offset menggeser binerisasi (negatif membuat lebih banyak piksel putih, positif membuat lebih sedikit). invert membalikkan output biner.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

morph(size: int, kernel: list, mul: float | None = 1.0, add: float | None = 0.0, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Melakukan konvolusi citra dengan kernel filter sembarang.

size mengontrol ukuran kernel, yang harus berupa elemen ((size*2)+1)x((size*2)+1).

kernel adalah kernel untuk dikonvolusikan, sebagai daftar/tupel 1D datar dari elemen ((size*2)+1)*((size*2)+1), atau sebagai daftar/tupel 2D dengan baris ((size*2)+1) dari elemen ((size*2)+1).

mul adalah skala kontras multiplikatif (default 1.0).

add adalah offset kecerahan aditif (default 0.0).

threshold jika True, mengambang secara adaptif output filter ke citra biner. offset menggeser binerisasi (negatif membuat lebih banyak piksel putih, positif membuat lebih sedikit). invert membalikkan output biner.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

gaussian(size: int, unsharp: bool | None = False, mul: float | None = 1.0, add: float | None = 0.0, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Melakukan konvolusi citra dengan kernel gaussian pemulusan.

size adalah ukuran kernel. Gunakan 1 (kernel 3x3), 2 (kernel 5x5), dll.

unsharp jika True, melakukan operasi unsharp mask (mempertajam tepi) alih-alih gaussian biasa.

mul adalah skala kontras multiplikatif (default 1.0).

add adalah offset kecerahan aditif (default 0.0).

threshold jika True, mengambang secara adaptif output filter ke citra biner. offset menggeser binerisasi (negatif membuat lebih banyak piksel putih, positif membuat lebih sedikit). invert membalikkan output biner.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

laplacian(size: int, sharpen: bool | None = False, mul: float | None = 1.0, add: float | None = 0.0, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Melakukan konvolusi citra dengan kernel laplacian pendeteksi tepi.

size adalah ukuran kernel. Gunakan 1 (kernel 3x3), 2 (kernel 5x5), dll.

sharpen jika True, mempertajam citra alih-alih menghasilkan respons tepi mentah yang tidak diambang.

mul adalah skala kontras multiplikatif (default 1.0).

add adalah offset kecerahan aditif (default 0.0).

threshold jika True, mengambang secara adaptif output filter ke citra biner. offset menggeser binerisasi (negatif membuat lebih banyak piksel putih, positif membuat lebih sedikit). invert membalikkan output biner.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

bilateral(size: int, color_sigma: float | None = 0.1, space_sigma: float | None = 1.0, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Melakukan konvolusi citra dengan filter bilateral (pemulusan yang mempertahankan tepi).

size adalah ukuran kernel. Gunakan 1 (kernel 3x3), 2 (kernel 5x5), dll.

color_sigma mengontrol toleransi pencocokan warna; nilai yang lebih besar menghasilkan lebih banyak blur warna.

space_sigma mengontrol blur spasial; nilai yang lebih besar menghasilkan lebih banyak blur piksel.

threshold jika True, mengambang secara adaptif output filter ke citra biner. offset menggeser binerisasi (negatif membuat lebih banyak piksel putih, positif membuat lebih sedikit). invert membalikkan output biner.

mask adalah citra biner yang digunakan sebagai mask tingkat piksel; hanya piksel yang diatur dalam mask yang dimodifikasi.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer/yuv.

Metode Geometris

linpolar(reverse: bool = False, *, x: int | None = None, y: int | None = None) Image

Memproyeksikan ulang citra dari koordinat Kartesius ke koordinat polar linier.

Atur reverse=True untuk memproyeksikan ulang ke arah yang berlawanan.

x dan y menentukan koordinat pusat transformasi dalam piksel citra. Jika x adalah None (nilai default) maka diatur ke setengah lebar citra; demikian pula y default ke setengah tinggi citra.

Proyeksi ulang polar linier mengubah rotasi citra menjadi translasi-x.

Tidak didukung pada citra terkompresi atau citra bayer.

Metode ini tidak tersedia di OpenMV Cam M4.

logpolar(reverse: bool = False, *, x: int | None = None, y: int | None = None) Image

Memproyeksikan ulang citra dari koordinat Kartesius ke koordinat log polar.

Atur reverse=True untuk memproyeksikan ulang ke arah yang berlawanan.

x dan y menentukan koordinat pusat transformasi dalam piksel citra. Jika x adalah None (nilai default) maka diatur ke setengah lebar citra; demikian pula y default ke setengah tinggi citra.

Proyeksi ulang log polar mengubah rotasi citra menjadi translasi-x dan penskalaan/pembesaran menjadi translasi-y.

Tidak didukung pada citra terkompresi atau citra bayer.

Metode ini tidak tersedia di OpenMV Cam M4.

lens_corr(strength: float = 1.8, zoom: float = 1.0, x_corr: float = 0.0, y_corr: float = 0.0) Image

Melakukan koreksi lensa untuk menghilangkan efek fisheye pada citra akibat distorsi lensa.

strength adalah float yang mendefinisikan seberapa banyak efek fisheye dihilangkan dari citra. Coba 1,8 secara default kemudian tingkatkan atau kurangi dari sana hingga citra terlihat bagus.

zoom adalah jumlah pembesaran pada citra. Default 1,0.

x_corr adalah offset piksel titik mengambang dari tengah. Dapat negatif atau positif.

y_corr adalah offset piksel titik mengambang dari tengah. Dapat negatif atau positif.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

rotation_corr(x_rotation: float = 0.0, y_rotation: float = 0.0, z_rotation: float = 0.0, x_translation: float = 0.0, y_translation: float = 0.0, zoom: float = 1.0, fov: float = 60.0, corners: List[Tuple[int, int]] | None = None) Image

Memperbaiki masalah perspektif dalam citra dengan melakukan rotasi 3D dari buffer bingkai.

x_rotation adalah jumlah derajat untuk memutar citra dalam buffer bingkai di sekitar sumbu x (yaitu ini memutar citra ke atas dan ke bawah).

y_rotation adalah jumlah derajat untuk memutar citra dalam buffer bingkai di sekitar sumbu y (yaitu ini memutar citra ke kiri dan ke kanan).

z_rotation adalah jumlah derajat untuk memutar citra dalam buffer bingkai di sekitar sumbu z (yaitu ini memutar citra di tempat).

x_translation adalah jumlah unit untuk memindahkan citra ke kiri atau kanan setelah rotasi. Karena translasi ini diterapkan dalam ruang 3D, satuannya bukan piksel...

y_translation adalah jumlah unit untuk memindahkan citra ke atas atau bawah setelah rotasi. Karena translasi ini diterapkan dalam ruang 3D, satuannya bukan piksel...

zoom adalah jumlah pembesaran pada citra. Default 1,0.

fov adalah sudut pandang yang digunakan untuk proyeksi 2D->3D internal. Saat fov mendekati 0, citra ditempatkan di tak terhingga; saat mendekati 180, citra ditempatkan di dalam viewport.

corners adalah daftar dari empat tupel (x, y) yang digunakan untuk membangun homografi 4-titik yang memetakan sudut ke (0, 0), (image_width-1, 0), (image_width-1, image_height-1), dan (0, image_height-1) sebelum menerapkan rotasi 3D. Berguna untuk transformasi tampilan mata burung.

Mengembalikan objek citra sehingga Anda dapat memanggil metode lain menggunakan notasi ..

Tidak didukung pada citra terkompresi atau citra bayer.

Metode ini tidak tersedia di OpenMV Cam M4.

Metode Get

get_similarity(image: Image, x: int = 0, y: int = 0, x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, dssim: bool = False) Similarity

Menghitung kesamaan antara dua citra menggunakan Indeks Kesamaan Struktural (SSIM). SSIM berkisar dari -1 (berlawanan) hingga 1 (identik). Mengembalikan objek image.similarity.

image adalah citra untuk dibandingkan (objek citra atau string path, misalnya "test.jpg").

x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint, dan transform menerima nilai yang sama dengan Image.draw_image().

dssim jika True, mengembalikan Indeks Ketidaksamaan Struktural (DSSIM) sebagai gantinya, di mana 0 berarti identik dan 1 berarti sepenuhnya berbeda.

get_histogram(thresholds: List[Tuple[int, int]] | None = None, invert: bool = False, roi: Tuple[int, int, int, int] | None = None, bins: int = -1, l_bins: int = -1, a_bins: int = -1, b_bins: int = -1, difference: Image | None = None) histogram

Menghitung histogram yang dinormalisasi pada semua channel warna untuk sebuah roi dan mengembalikan objek image.histogram. Juga tersedia sebagai Image.get_hist() atau Image.histogram().

thresholds adalah daftar tupel (lo, hi) untuk citra grayscale, atau tupel (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) untuk citra RGB565. Jika diteruskan, histogram hanya dihitung untuk piksel dalam ambang batas.

invert membalikkan pencocokan ambang batas.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

bins (grayscale) atau l_bins/a_bins/b_bins (RGB565) mengatur jumlah bin histogram per channel. Harus lebih besar dari 2. Default ke bin maksimum per channel.

difference dapat diatur ke objek citra untuk beroperasi pada selisih antara citra saat ini dan citra tersebut tanpa buffer tambahan.

Tidak didukung pada citra terkompresi atau citra bayer.

get_statistics(thresholds: List[Tuple[int, int]] | None = None, invert: bool = False, roi: Tuple[int, int, int, int] | None = None, bins: int = -1, l_bins: int = -1, a_bins: int = -1, b_bins: int = -1, difference: Image | None = None) statistics

Menghitung rata-rata, median, modus, standar deviasi, min, maks, kuartil bawah, dan kuartil atas untuk semua channel warna untuk sebuah roi dan mengembalikan objek image.statistics. Juga tersedia sebagai Image.get_stats() atau Image.statistics().

thresholds adalah daftar tupel (lo, hi) untuk citra grayscale, atau tupel (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) untuk citra RGB565. Jika diteruskan, statistik hanya dihitung untuk piksel dalam ambang batas.

invert membalikkan pencocokan ambang batas.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

bins (grayscale) atau l_bins/a_bins/b_bins (RGB565) mengatur jumlah bin histogram per channel. Harus lebih besar dari 2. Default ke bin maksimum per channel.

difference dapat diatur ke objek citra untuk beroperasi pada selisih antara citra saat ini dan citra tersebut tanpa buffer tambahan.

Tidak didukung pada citra terkompresi atau citra bayer.

get_regression(thresholds: List[Tuple[int, int]], invert: bool = False, roi: Tuple[int, int, int, int] | None = None, x_stride: int = 2, y_stride: int = 1, area_threshold: int = 10, pixels_threshold: int = 10, target_size: Tuple[int, int] = (80, 60)) line

Menghitung regresi linier (Theil-Sen) pada semua piksel yang diambang dalam citra. Mengembalikan objek image.line, atau None jika tidak ada garis yang ditemukan.

thresholds adalah daftar tupel (lo, hi) untuk citra grayscale, atau tupel (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) untuk citra RGB565.

invert membalikkan pencocokan ambang batas.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

x_stride dan y_stride mengontrol berapa banyak piksel yang dilewati saat mengevaluasi citra.

area_threshold area kotak pembatas minimum; hasil yang lebih kecil mengembalikan None.

pixels_threshold jumlah piksel yang diambang minimum; hasil yang lebih kecil mengembalikan None.

target_size adalah tupel (w, h). ROI diskalakan ke bawah berdasarkan area agar muat di dalam ukuran ini sebelum menjalankan algoritma O(N^2). Default ke (80, 60).

Tidak didukung pada citra terkompresi atau citra bayer.

Metode Deteksi

find_blobs(thresholds: List[Tuple[int, int]], invert: bool = False, roi: Tuple[int, int, int, int] | None = None, x_stride: int = 2, y_stride: int = 1, area_threshold: int = 10, pixels_threshold: int = 10, merge: bool = False, margin: int = 0, threshold_cb: Callable | None = None, merge_cb: Callable | None = None, x_hist_bins_max: int = 0, y_hist_bins_max: int = 0) List[blob]

Menemukan semua blob (wilayah piksel yang terhubung yang melewati uji ambang batas) dalam citra dan mengembalikan daftar objek image.blob.

thresholds adalah daftar tupel (lo, hi) untuk citra grayscale, atau tupel (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) untuk citra RGB565 (channel LAB). Hingga 32 tupel dapat diteruskan. Nilai min/max yang tertukar diperbaiki secara otomatis; komponen yang hilang default ke rentang maksimum.

invert membalikkan pencocokan ambang batas.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

x_stride dan y_stride mengontrol berapa banyak piksel yang dilewati saat mencari blob. Tingkatkan jika blob diketahui berukuran besar.

area_threshold area kotak pembatas minimum; blob yang lebih kecil difilter.

pixels_threshold jumlah piksel yang diambang minimum; blob yang lebih kecil difilter.

merge jika True menggabungkan blob yang persegi panjang pembatasnya berpotongan. margin memperbesar/memperkecil persegi panjang pembatas yang digunakan untuk perpotongan. Blob yang digabungkan melakukan OR pada vektor bit code mereka (satu bit per ambang batas).

threshold_cb dipanggil per blob setelah pengambangan; kembalikan True untuk mempertahankan, False untuk memfilter.

merge_cb dipanggil per pasang blob yang akan digabungkan; kembalikan True untuk mengizinkan penggabungan, False untuk mencegahnya.

x_hist_bins_max jika bukan nol, mengisi setiap blob dengan proyeksi x_histogram menggunakan sejumlah bin ini.

y_hist_bins_max jika bukan nol, mengisi setiap blob dengan proyeksi y_histogram menggunakan sejumlah bin ini.

Tidak didukung pada citra terkompresi atau citra bayer.

find_lines(roi: Tuple[int, int, int, int] | None = None, x_stride: int = 2, y_stride: int = 1, threshold: int = 1000, theta_margin: int = 25, rho_margin: int = 25) List[line]

Menemukan semua garis tak terbatas dalam citra menggunakan transformasi hough. Mengembalikan daftar objek image.line.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

x_stride dan y_stride mengontrol berapa banyak piksel yang dilewati selama transformasi hough.

threshold magnitudo garis minimum (jumlah magnitudo sobel sepanjang garis); garis di bawah ini difilter keluar.

theta_margin dan rho_margin mengontrol penggabungan: garis dalam ambang batas ini digabungkan.

Tidak didukung pada citra terkompresi atau citra bayer.

Metode ini tidak tersedia di OpenMV Cam M4.

find_line_segments(roi: Tuple[int, int, int, int] | None = None, merge_distance: int = 0, max_theta_difference: int = 15) List[line]

Menemukan segmen garis dalam citra. Mengembalikan daftar objek image.line.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

merge_distance adalah pemisahan piksel maksimum antara dua segmen yang akan digabungkan.

max_theta_difference adalah perbedaan theta maksimum dalam derajat antara segmen yang akan digabungkan.

Metode ini tidak tersedia di OpenMV Cam M4.

find_circles(roi: Tuple[int, int, int, int] | None = None, x_stride: int = 2, y_stride: int = 1, threshold: int = 2000, x_margin: int = 10, y_margin: int = 10, r_margin: int = 10, r_min: int = 2, r_max: int | None = None, r_step: int = 2) List[circle]

Menemukan lingkaran dalam citra menggunakan transformasi hough. Mengembalikan daftar objek image.circle.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

x_stride dan y_stride mengontrol berapa banyak piksel yang dilewati selama transformasi hough.

threshold magnitudo lingkaran minimum (jumlah magnitudo sobel sepanjang lingkaran); lingkaran di bawah ini difilter keluar.

x_margin, y_margin, dan r_margin mengontrol penggabungan: lingkaran dalam ambang batas ini digabungkan.

r_min radius lingkaran minimum. Default ke 2.

r_max radius lingkaran maksimum. Default ke min(roi.w/2, roi.h/2).

r_step ukuran langkah radius. Default ke 2.

Metode ini tidak tersedia di OpenMV Cam M4.

find_rects(roi: Tuple[int, int, int, int] | None = None, threshold: int = 1000) List[rect]

Menemukan persegi panjang dalam citra menggunakan algoritma deteksi quad apriltag. Mengembalikan daftar objek image.rect.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

threshold magnitudo tepi minimum (jumlah magnitudo sobel sepanjang tepi persegi panjang); persegi panjang di bawah ini difilter keluar.

Metode ini tidak tersedia di OpenMV Cam M4.

find_qrcodes(roi: Tuple[int, int, int, int] | None = None) List[qrcode]

Menemukan semua qrcode dalam roi dan mengembalikan daftar objek image.qrcode.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

Metode ini tidak tersedia di OpenMV Cam M4.

find_apriltags(roi: Tuple[int, int, int, int] | None = None, families: int = TAG36H11, fx: float | None = None, fy: float | None = None, cx: float | None = None, cy: float | None = None) List[apriltag]

Menemukan semua apriltag dalam roi dan mengembalikan daftar objek image.apriltag.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

families adalah bitmask dari keluarga tag yang akan didekode. Ini adalah OR logis dari:

Default ke image.TAG36H11. Waktu deteksi skala dengan jumlah keluarga yang diaktifkan.

fx dan fy adalah panjang fokus kamera X dan Y dalam piksel.

cx dan cy adalah pusat citra, biasanya image.width()/2 dan image.height()/2.

Tidak didukung pada citra terkompresi.

Metode ini tidak tersedia di OpenMV Cam M4.

find_datamatrices(roi: Tuple[int, int, int, int] | None = None, effort: int = 200) List[datamatrix]

Menemukan semua datamatrix dalam roi dan mengembalikan daftar objek image.datamatrix.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

effort mengontrol berapa banyak waktu yang dihabiskan untuk mencoba menemukan kecocokan matriks data. Nilai yang lebih tinggi meningkatkan deteksi dengan biaya laju bingkai. Nilai di bawah ~160 gagal mendeteksi; nilai di atas ~240 menghasilkan hasil yang semakin berkurang. Default ke 200.

Metode ini tidak tersedia di OpenMV Cam M4.

find_barcodes(roi: Tuple[int, int, int, int] | None = None) List[barcode]

Menemukan semua barcode 1D dalam roi dan mengembalikan daftar objek image.barcode. Memindai baik secara horizontal maupun vertikal.

Jenis barcode yang didukung: image.EAN2, image.EAN5, image.EAN8, image.UPCE, image.ISBN10, image.UPCA, image.EAN13, image.ISBN13, image.I25, image.DATABAR (RSS-14), image.DATABAR_EXP (RSS-Expanded), image.CODABAR, image.CODE39, image.PDF417, image.CODE93, image.CODE128.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

Metode ini tidak tersedia di OpenMV Cam M4.

find_displacement(template: Image, roi: Tuple[int, int, int, int] | None = None, template_roi: Tuple[int, int, int, int] | None = None, logpolar: bool = False, fix_rotation_scale: bool = False) displacement

Menemukan offset translasi citra ini dari template menggunakan korelasi fasa. Mengembalikan objek image.displacement.

roi adalah persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

template_roi adalah wilayah-yang-diminati template. Default ke persegi panjang citra template. roi dan template_roi harus memiliki lebar dan tinggi yang sama.

logpolar jika True mengembalikan perubahan rotasi/skala alih-alih translasi x/y.

fix_rotation_scale jika True, menghitung perpindahan setelah menyelaraskan rotasi dan skala (hanya bermakna ketika logpolar=False).

Catatan

Gunakan metode ini pada ukuran citra pangkat-2 (misalnya sensor.B64X64).

Tidak didukung pada citra terkompresi atau citra bayer. Tidak tersedia di OpenMV Cam M4.

find_template(template: Image, threshold: float, roi: Tuple[int, int, int, int] | None = None, step: int = 2, search: int = SEARCH_EX) Tuple[int, int, int, int] | None

Mencoba menemukan lokasi pertama dalam citra di mana template cocok menggunakan Korelasi Silang Ternormalisasi. Mengembalikan tupel kotak pembatas (x, y, w, h), atau None.

template adalah citra grayscale untuk dicocokkan dengan citra ini.

threshold adalah nilai (0,0-1,0). Nilai yang lebih tinggi mengurangi positif palsu dan deteksi; nilai yang lebih rendah sebaliknya.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

step adalah jumlah piksel yang dilewati saat mencari (hanya digunakan dalam mode image.SEARCH_EX).

search adalah image.SEARCH_DS (pencarian diamond yang lebih cepat) atau image.SEARCH_EX (pencarian menyeluruh).

Hanya berfungsi pada citra grayscale.

find_features(cascade: Cascade, threshold: float = 0.5, scale: float = 1.5, roi: Tuple[int, int, int, int] | None = None) List[Tuple[int, int, int, int]]

Mencari citra untuk area yang cocok dengan Haar cascade yang diteruskan dan mengembalikan daftar tupel kotak pembatas (x, y, w, h). Mengembalikan daftar kosong jika tidak ada fitur yang ditemukan.

cascade adalah objek Haar Cascade (lihat image.HaarCascade()).

threshold (0,0-1,0). Nilai yang lebih rendah meningkatkan tingkat deteksi dan tingkat positif palsu.

scale harus lebih besar dari 1,0. Nilai yang lebih tinggi berjalan lebih cepat tetapi menghasilkan kecocokan yang lebih buruk.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

find_eye(roi: Tuple[int, int, int, int]) Tuple[int, int]

Mencari pupil dalam tupel wilayah-yang-diminati (x, y, w, h) di sekitar mata. Mengembalikan lokasi (x, y) dari pupil, atau (0, 0) jika tidak ada yang ditemukan.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h).

Hanya berfungsi pada citra grayscale.

find_lbp(roi: Tuple[int, int, int, int]) lbp_descriptor

Mengekstrak titik kunci LBP (local-binary-patterns) dari wilayah-yang-diminati. Gunakan image.match_descriptor() untuk membandingkan dua deskriptor.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h).

Hanya berfungsi pada citra grayscale.

find_keypoints(roi: Tuple[int, int, int, int] | None = None, threshold: int = 20, normalized: bool = False, scale_factor: float = 1.5, max_keypoints: int = 100, corner_detector: int = CORNER_AGAST) kp_descriptor | None

Mengekstrak titik kunci ORB dari wilayah-yang-diminati. Gunakan image.match_descriptor() untuk membandingkan dua deskriptor. Mengembalikan None jika tidak ada titik kunci yang ditemukan.

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Default ke persegi panjang citra.

threshold (0-255) mengontrol jumlah sudut yang diekstrak. Ambang batas yang lebih rendah menghasilkan lebih banyak sudut. Gunakan ~20 untuk AGAST, ~60-80 untuk FAST.

normalized jika True, menonaktifkan ekstraksi titik kunci multi-resolusi.

scale_factor harus lebih besar dari 1,0. Nilai yang lebih tinggi berjalan lebih cepat tetapi menghasilkan kecocokan yang lebih buruk.

max_keypoints adalah jumlah maksimum titik kunci yang akan dipertahankan.

corner_detector adalah image.CORNER_FAST atau image.CORNER_AGAST.

Hanya berfungsi pada citra grayscale.

find_edges(edge_type: int, threshold: Tuple[int, int] = (100, 200)) Image

Mengubah citra menjadi hitam dan putih hanya menyisakan tepi sebagai piksel putih.

  • image.EDGE_SIMPLE - Algoritma filter high pass yang di-threshold sederhana.

  • image.EDGE_CANNY - Algoritma deteksi tepi Canny.

threshold adalah tupel dua nilai yang berisi ambang batas rendah dan ambang batas tinggi. Anda dapat mengontrol kualitas tepi dengan menyesuaikan nilai-nilai ini. Default ke (100, 200).

Hanya berfungsi pada citra grayscale.

find_hog(roi: Tuple[int, int, int, int] | None = None, size: int = 8) Image

Mengganti piksel di ROI dengan garis HOG (histogram of orientated gradients).

roi adalah tupel persegi panjang wilayah-yang-diminati (x, y, w, h). Jika tidak ditentukan, sama dengan persegi panjang citra. Hanya piksel dalam roi yang dioperasikan.

Hanya berfungsi pada citra grayscale.

Metode ini tidak tersedia di OpenMV Cam M4.

stereo_disparity(reversed: bool = False, max_disparity: int = 64, threshold: int = 64) Image

Mengambil citra grayscale double-lebar yang berisi output dari dua sensor kamera berdampingan dan mengganti setengahnya dengan citra disparitas stereo (setiap piksel mewakili kedalaman). Misalnya untuk dua kamera 320x240 teruskan citra 640x240.

reversed Secara default citra kiri dibandingkan dengan yang kanan dan citra kanan diganti. Atur True untuk membandingkan kanan->kiri dan mengganti citra kiri.

max_disparity adalah jarak maksimum (1-255) untuk mencari blok piksel yang cocok menggunakan sum-of-absolute differences. Nilai yang lebih besar membutuhkan waktu eksponensial lebih lama tetapi menghasilkan output berkualitas lebih tinggi.

threshold jika jumlah perbedaan absolut antara dua blok kurang dari atau sama dengan ambang batas ini, mereka dianggap cocok.

Menjalankan pencarian selektif pada citra dan mengembalikan daftar tupel kotak pembatas (x, y, w, h) dari proposal objek.

threshold adalah ambang batas segmentasi; nilai yang lebih tinggi menghasilkan wilayah yang lebih sedikit/lebih besar.

size adalah ukuran wilayah minimum setelah penggabungan.

a1, a2, a3 adalah bobot kesamaan warna/tekstur/ukuran yang digunakan saat menggabungkan wilayah.