maix.camera
maix.camera module, access camera device and get image from it
You can use
maix.camera
to access this module with MaixPy
This module is generated from MaixPy and MaixCDK
Module
No module
Enum
Variable
Function
list_devices
def list_devices() -> list[str]
List all supported camera devices.
item | description |
---|---|
return | Returns the path to the camera device. |
C++ defination code:
std::vector<std::string> list_devices()
set_regs_enable
def set_regs_enable(enable: bool = True) -> None
Enable set camera registers, default is false, if set to true, will not set camera registers, you can manually set registers by write_reg API.
item | description |
---|---|
param | enable: enable/disable set camera registers |
C++ defination code:
void set_regs_enable(bool enable = true)
get_device_name
def get_device_name() -> str
Get device name. Most of the time, the returned name is the name of the sensor.
C++ defination code:
std::string get_device_name()
Class
Camera
Camera class
C++ defination code:
class Camera
__init__
def __init__(self, width: int = -1, height: int = -1, format: maix.image.Format = ..., device: str = None, fps: float = -1, buff_num: int = 3, open: bool = True, raw: bool = False) -> None
Construct a new Camera object.\nMaximum resolution support 2560x1440.
item | description |
---|---|
type | func |
param | width: camera width, default is -1, means auto, mostly means max width of camera support height: camera height, default is -1, means auto, mostly means max height of camera support format: camera output format, default is image.Format.FMT_RGB888 device: camera device path, you can get devices by list_devices method, by default(value is NULL(None in MaixPy)) means the first device fps: camera fps, default is -1, means auto, mostly means max fps of camera support buff_num: camera buffer number, default is 3, means 3 buffer, one used by user, one used for cache the next frame, more than one buffer will accelerate image read speed, but will cost more memory. open: If true, camera will automatically call open() after creation. default is true. raw: If true, you can use read_raw() to capture the raw image output from the sensor. |
static | False |
C++ defination code:
Camera(int width = -1, int height = -1, image::Format format = image::FMT_RGB888, const char *device = nullptr, double fps = -1, int buff_num = 3, bool open = true, bool raw = false)
get_ch_nums
def get_ch_nums(self) -> int
Get the number of channels supported by the camera.
item | description |
---|---|
type | func |
return | Returns the maximum number of channels. |
static | False |
C++ defination code:
int get_ch_nums()
open
def open(self, width: int = -1, height: int = -1, format: maix.image.Format = ..., fps: float = -1, buff_num: int = -1) -> maix.err.Err
Open camera and run
item | description |
---|---|
type | func |
param | width: camera width, default is -1, means auto, mostly means max width of camera support height: camera height, default is -1, means auto, mostly means max height of camera support format: camera output format, default same as the constructor's format argument fps: camera fps, default is -1, means auto, mostly means max fps of camera support buff_num: camera buffer number, default is 3, means 3 buffer, one used by user, one used for cache the next frame, more than one buffer will accelerate image read speed, but will cost more memory. |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err open(int width = -1, int height = -1, image::Format format = image::FMT_INVALID, double fps = -1, int buff_num = -1)
read
def read(self, buff: capsule = None, buff_size: int = 0, block: bool = True, block_ms: int = -1) -> maix.image.Image
Get one frame image from camera buffer, must call open method before read.\nIf open method not called, will call it automatically, if open failed, will throw exception!\nSo call open method before read is recommended.
item | description |
---|---|
type | func |
param | buff: buffer to store image data, if buff is nullptr, will alloc memory automatically. In MaixPy, default to None, you can create a image.Image object, then pass img.data() to buff. block: block read, default is true, means block util read image successfully, if set to false, will return nullptr if no image in buffer block_ms: block read timeout |
return | image::Image object, if failed, return nullptr, you should delete if manually in C++ |
static | False |
C++ defination code:
image::Image *read(void *buff = nullptr, size_t buff_size = 0, bool block = true, int block_ms = -1)
read_raw
def read_raw(self) -> maix.image.Image
Read the raw image and obtain the width, height, and format of the raw image through the returned Image object.
item | description |
---|---|
type | func |
note | The raw image is in a Bayer format, and its width and height are affected by the driver. Modifying the size and format is generally not allowed. |
return | image::Image object, if failed, return nullptr, you should delete if manually in C++ |
static | False |
C++ defination code:
image::Image *read_raw()
clear_buff
def clear_buff(self) -> None
Clear buff to ensure the next read image is the latest image
item | description |
---|---|
type | func |
static | False |
C++ defination code:
void clear_buff()
skip_frames
def skip_frames(self, num: int) -> None
Read some frames and drop, this is usually used avoid read not stable image when camera just opened.
item | description |
---|---|
type | func |
param | num: number of frames to read and drop |
static | False |
C++ defination code:
void skip_frames(int num)
close
def close(self) -> None
Close camera
item | description |
---|---|
type | func |
static | False |
C++ defination code:
void close()
add_channel
def add_channel(self, width: int = -1, height: int = -1, format: maix.image.Format = ..., fps: float = -1, buff_num: int = 3, open: bool = True) -> Camera
Add a new channel and return a new Camera object, you can use close() to close this channel.
item | description |
---|---|
type | func |
param | width: camera width, default is -1, means auto, mostly means max width of camera support height: camera height, default is -1, means auto, mostly means max height of camera support format: camera output format, default is RGB888 fps: camera fps, default is -1, means auto, mostly means max fps of camera support buff_num: camera buffer number, default is 3, means 3 buffer, one used by user, one used for cache the next frame, more than one buffer will accelerate image read speed, but will cost more memory. open: If true, camera will automatically call open() after creation. default is true. |
return | new Camera object |
static | False |
C++ defination code:
camera::Camera *add_channel(int width = -1, int height = -1, image::Format format = image::FMT_RGB888, double fps = -1, int buff_num = 3, bool open = true)
is_opened
def is_opened(self) -> bool
Check if camera is opened
item | description |
---|---|
type | func |
return | true if camera is opened, false if not |
static | False |
C++ defination code:
bool is_opened()
is_closed
def is_closed(self) -> bool
check camera device is closed or not
item | description |
---|---|
type | func |
return | closed or not, bool type |
static | False |
C++ defination code:
bool is_closed()
width
def width(self) -> int
Get camera width
item | description |
---|---|
type | func |
return | camera width |
static | False |
C++ defination code:
int width()
height
def height(self) -> int
Get camera height
item | description |
---|---|
type | func |
return | camera height |
static | False |
C++ defination code:
int height()
fps
def fps(self) -> float
Get camera fps
item | description |
---|---|
type | func |
return | camera fps |
static | False |
C++ defination code:
double fps()
format
def format(self) -> maix.image.Format
Get camera output format
item | description |
---|---|
type | func |
return | camera output format, image::Format object |
static | False |
C++ defination code:
image::Format format()
buff_num
def buff_num(self) -> int
Get camera buffer number
item | description |
---|---|
type | func |
return | camera buffer number |
static | False |
C++ defination code:
int buff_num()
hmirror
def hmirror(self, value: int = -1) -> int
Set/Get camera horizontal mirror
item | description |
---|---|
type | func |
return | camera horizontal mirror |
static | False |
C++ defination code:
int hmirror(int value = -1)
vflip
def vflip(self, value: int = -1) -> int
Set/Get camera vertical flip
item | description |
---|---|
type | func |
return | camera vertical flip |
static | False |
C++ defination code:
int vflip(int value = -1)
device
def device(self) -> str
Get camera device path
item | description |
---|---|
type | func |
return | camera device path |
static | False |
C++ defination code:
std::string device()
write_reg
def write_reg(self, addr: int, data: int, bit_width: int = 8) -> maix.err.Err
Write camera register
item | description |
---|---|
type | func |
param | addr: register address data: register data bit_width: register data bit width, default is 8 |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err write_reg(int addr, int data, int bit_width = 8)
read_reg
def read_reg(self, addr: int, bit_width: int = 8) -> int
Read camera register
item | description |
---|---|
type | func |
param | addr: register address bit_width: register data bit width, default is 8 |
return | register data, -1 means failed |
static | False |
C++ defination code:
int read_reg(int addr, int bit_width = 8)
show_colorbar
def show_colorbar(self, enable: bool) -> maix.err.Err
Camera output color bar image for test
item | description |
---|---|
type | func |
param | enable: enable/disable color bar |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err show_colorbar(bool enable)
get_channel
def get_channel(self) -> int
Get channel of camera
item | description |
---|---|
type | func |
return | channel number |
static | False |
C++ defination code:
int get_channel()
set_resolution
def set_resolution(self, width: int, height: int) -> maix.err.Err
Set camera resolution
item | description |
---|---|
type | func |
param | width: new width height: new height |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err set_resolution(int width, int height)
set_fps
def set_fps(self, fps: float) -> maix.err.Err
Set camera fps
item | description |
---|---|
type | func |
param | fps: new fps |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err set_fps(double fps)
exposure
def exposure(self, value: int = -1) -> int
Set/Get camera exposure
item | description |
---|---|
type | func |
attention | This method will affect the isp and thus the image, so please be careful with it. |
param | value: exposure time. unit: us If value == -1, return exposure time. If value != 0, set and return exposure time. |
return | camera exposure time |
static | False |
C++ defination code:
int exposure(int value = -1)
gain
def gain(self, value: int = -1) -> int
Set/Get camera gain
item | description |
---|---|
type | func |
attention | This method will affect the isp and thus the image, so please be careful with it. |
param | value: camera gain. If value == -1, returns camera gain. If value != 0, set and return camera gain. |
return | camera gain |
static | False |
C++ defination code:
int gain(int value = -1)
luma
def luma(self, value: int = -1) -> int
Set/Get camera luma
item | description |
---|---|
type | func |
attention | This method will affect the isp and thus the image, so please be careful with it. |
param | value: luma value, range is [0, 100] If value == -1, returns luma value. If value != 0, set and return luma value. |
return | returns luma value |
static | False |
C++ defination code:
int luma(int value = -1)
constrast
def constrast(self, value: int = -1) -> int
Set/Get camera constrast
item | description |
---|---|
type | func |
attention | This method will affect the isp and thus the image, so please be careful with it. |
param | value: constrast value, range is [0, 100] If value == -1, returns constrast value. If value != 0, set and return constrast value. |
return | returns constrast value |
static | False |
C++ defination code:
int constrast(int value = -1)
saturation
def saturation(self, value: int = -1) -> int
Set/Get camera saturation
item | description |
---|---|
type | func |
attention | This method will affect the isp and thus the image, so please be careful with it. |
param | value: saturation value, range is [0, 100] If value == -1, returns saturation value. If value != 0, set and return saturation value. |
return | returns saturation value |
static | False |
C++ defination code:
int saturation(int value = -1)
awb_mode
def awb_mode(self, value: int = -1) -> int
Set/Get white balance mode (deprecated interface)
item | description |
---|---|
type | func |
attention | This method will affect the isp and thus the image, so please be careful with it. This interface may be deprecated in the future, and there may be incompatibilities in the definition of the parameters of the new interface |
param | value: value = 0, means set white balance to auto mode, value = 1, means set white balance to manual mode, default is auto mode. |
return | returns awb mode |
static | False |
C++ defination code:
int awb_mode(int value = -1)
set_awb
def set_awb(self, mode: int = -1) -> int
Set/Get white balance mode
item | description |
---|---|
type | func |
attention | This method will affect the isp and thus the image, so please be careful with it. |
param | value: value = 0, means set white balance to manual mode, value = 1, means set white balance to auto mode, default is auto mode. |
return | returns awb mode |
static | False |
C++ defination code:
int set_awb(int mode = -1)
exp_mode
def exp_mode(self, value: int = -1) -> int
Set/Get exposure mode (deprecated interface)
item | description |
---|---|
type | func |
attention | This method will affect the isp and thus the image, so please be careful with it. This interface may be deprecated in the future, and there may be incompatibilities in the definition of the parameters of the new interface |
param | value: value = 0, means set exposure to auto mode, value = 1, means set exposure to manual mode, default is auto mode. |
return | returns exposure mode |
static | False |
C++ defination code:
int exp_mode(int value = -1)
set_windowing
def set_windowing(self, roi: list[int]) -> maix.err.Err
Set window size of camera
item | description |
---|---|
type | func |
param | roi: Support two input formats, [x,y,w,h] set the coordinates and size of the window; [w,h] set the size of the window, when the window is centred. |
return | error code |
static | False |
C++ defination code:
err::Err set_windowing(std::vector<int> roi)