WEB 카메라와 산업용 UVC 카메라 v4l2-ctrl의 속성 차이
배경.
지금까지 감시 카메라를 통해 목시 검사를 했습니다.
사람의 눈을 대체하는 카메라, 사람의 머리를 대체하는 영상 처리 소프트웨어로 대체되었다.영상 처리에 관한 자료는 많지만 카메라와 관련된 문서는 드물다.카메라라지만 저렴한 아마존이 판매하는 웹카메라부터 BtoB를 위한 산업용 카메라까지 범위가 넓어 무엇이 다른지 알 수 없어 리눅스로 고사양 카메라(산업용 카메라)와 웹카메라의 차이가 얼마나 큰지 검증한다.
Linux에서 카메라 사용
일반적으로 Linux 커널의 카메라 드라이버 Video for Linux Two(V4L2)를 비디오 캡처 API로 구현합니다.
가장 가까운 linux(Linux 2.6.26 이후)라면 V4L2, UVC 카메라 드라이브가 내장되어 있습니다.
검증할 카메라 정보
웹 카메라에 사용되는 규격의 UVC(USB Video Class) 카메라를 사용합니다.
장치 제어에는 v4l2의 범용 Linux 드라이버를 사용할 수 있습니다.
참조: https://www.argocorp.com/UVC_camera/Linux.html
v4l2 명령을 사용하여 속성 확인
v4l-ctl 명령에서 "-list formats"를 선택적으로 지정하면 Video 4 Linux2에서 지원하는 속성을 확인할 수 있습니다.
참조: https://leico.github.io/TechnicalNote/Linux/webcam-usage
WEB 카메라 속성 확인
사용된 카메라: Logiitech(논리적) 웹 카메라 V-U0015
카메라 속성 정보 확인
terminal-webcamerapi@raspberrypi:~ $ v4l2-ctl --list-ctrls
brightness 0x00980900 (int) : min=0 max=255 step=1 default=128 value=128
contrast 0x00980901 (int) : min=0 max=255 step=1 default=32 value=32
saturation 0x00980902 (int) : min=0 max=255 step=1 default=32 value=32
white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
gain 0x00980913 (int) : min=0 max=255 step=1 default=64 value=64
power_line_frequency 0x00980918 (menu) : min=0 max=2 default=2 value=2
white_balance_temperature 0x0098091a (int) : min=0 max=10000 step=10 default=4000 value=4000 flags=inactive
sharpness 0x0098091b (int) : min=0 max=255 step=1 default=24 value=24
backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=0 value=0
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
exposure_absolute 0x009a0902 (int) : min=1 max=10000 step=1 default=166 value=166 flags=inactive
exposure_auto_priority 0x009a0903 (bool) : default=0 value=1
led1_mode 0x0a046d05 (menu) : min=0 max=3 default=3 value=3
led1_frequency 0x0a046d06 (int) : min=0 max=131 step=1 default=0 value=0
색조, 화이트 밸런스(연결만 끊기), 이득, 자동 노출, 고정 노출 시간, 대비도 등을 조절할 수 있다.
led1_mode 및 led1frequency와 같은 LED 표시등을 변경할 수 있는 것이 특징이다.
일단 화면에 올리고.
gstreamer의 파이프라인을 사용하여 화면을 표시합니다.
참조: https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c
terminalgst-launch-1.0 v4l2src ! videoconvert ! ximagesink
실제로 노출 시간을 설정해 보자.자동 노출을 끄고 노출 시간을 설정합니다.
terminalv4l2-ctl --set-ctrl=exposure_auto=1,exposure_absolute=30
실행 결과
자동 노출을 끄더라도 자동 이득이 효과가 있기 때문에 카메라가 어두운 곳에서 밝은 곳으로 투영되면 약간의 흰색 비행이 있을 것이다.
다만, 빠르게 움직이는 물체, 밝기의 제어와 촉발 처리가 필요하지 않으면 별다른 어려움이 없다.
공업용 사진기
사용된 카메라: TheImaging Source 산업용 카메라 DFK33 UP2000
카메라 속성 정보 확인
terminal-industrial-camerapi@raspberrypi:~ $ v4l2-ctl --list-ctrls
saturation 0x00980902 (int) : min=0 max=255 step=1 default=64 value=64
hue 0x00980903 (int) : min=-180 max=180 step=1 default=0 value=0
white_balance_component_auto 0x0098090c (bool) : default=1 value=1
white_balance_red_component 0x0098090e (int) : min=0 max=255 step=1 default=64 value=69 flags=inactive
white_balance_blue_component 0x0098090f (int) : min=0 max=255 step=1 default=64 value=125 flags=inactive
gamma 0x00980910 (int) : min=1 max=500 step=1 default=100 value=100
gain 0x00980913 (int) : min=144 max=1200 step=1 default=144 value=144
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
exposure_absolute 0x009a0902 (int) : min=1 max=100000 step=1 default=3 value=3 flags=inactive
exposure_time_us 0x0199e201 (int) : min=50 max=10000000 step=1 default=333 value=333
auto_shutter 0x0199e202 (bool) : default=1 value=1
auto_exposure_reference 0x0199e203 (int) : min=0 max=255 step=1 default=128 value=128
gain_auto 0x0199e205 (bool) : default=1 value=1
trigger_mode 0x0199e208 (bool) : default=0 value=0
software_trigger 0x0199e209 (button) : flags=write-only
trigger_delay 0x0199e210 (int) : min=0 max=1000000 step=1 default=0 value=159
strobe_enable 0x0199e211 (bool) : default=0 value=0
strobe_polarity 0x0199e212 (bool) : default=0 value=0
strobe_exposure 0x0199e213 (bool) : default=0 value=0
gpout 0x0199e216 (bool) : default=0 value=0
gpin 0x0199e217 (bool) : default=0 value=0
roi_offset_x 0x0199e218 (int) : min=0 max=1664 step=32 default=0 value=0
roi_offset_y 0x0199e219 (int) : min=0 max=1184 step=4 default=0 value=0
roi_auto_center 0x0199e220 (bool) : default=1 value=1
trigger_polarity 0x0199e234 (menu) : min=0 max=1 default=0 value=1
trigger_burst_count 0x0199e237 (int) : min=1 max=1000 step=1 default=1 value=1
trigger_debounce_time_us 0x0199e238 (int) : min=0 max=1000000 step=1 default=0 value=0
trigger_mask_time_us 0x0199e239 (int) : min=0 max=1000000 step=1 default=0 value=0
trigger_noise_suppression_time 0x0199e240 (int) : min=0 max=1000000 step=1 default=0 value=0
auto_functions_roi_control 0x0199e241 (bool) : default=1 value=1
auto_functions_roi_left 0x0199e242 (int) : min=0 max=1904 step=1 default=0 value=480
auto_functions_roi_top 0x0199e243 (int) : min=0 max=1184 step=1 default=0 value=300
auto_functions_roi_width 0x0199e244 (int) : min=16 max=1920 step=1 default=0 value=960
auto_functions_roi_height 0x0199e245 (int) : min=16 max=1200 step=1 default=0 value=600
white_balance_mode 0x0199e246 (menu) : min=0 max=1 default=0 value=0
white_balance_auto_preset 0x0199e247 (menu) : min=0 max=4 default=0 value=0
white_balance_green_component 0x0199e248 (int) : min=0 max=255 step=1 default=64 value=64
white_balance_temp_preset 0x0199e249 (menu) : min=0 max=8 default=6500 value=4
white_balance_temperature 0x0199e250 (int) : min=2500 max=10000 step=100 default=6500 value=4000
exposure_auto_upper_limit_auto 0x0199e254 (bool) : default=1 value=1
exposure_auto_upper_limit_us 0x0199e256 (int) : min=50 max=1000000 step=1 default=333 value=33333
override_scanning_mode 0x0199e257 (int) : min=1 max=16 step=1 default=1 value=0
auto_functions_roi_preset 0x0199e258 (menu) : min=0 max=5 default=2 value=2
trigger_global_reset_release 0x0199e261 (bool) : default=0 value=0
설정할 수 있는 항목 수는 웹 카메라에 비해 압도적으로 많다.
산업용 카메라 중 웹 카메라만 있는 프로젝트
led1_mode 및 led1frequency와 같은 LED 표시등 항목에만 한정됩니다.
이득과 노출 시간뿐만 아니라 트리거, 깜빡임, 화이트 밸런스, 픽셀 잘라내기(ROI)도 설정할 수 있다.
일단 화면에 올리고.
웹 카메라와 마찬가지로 gstreamer의 파이프라인을 사용하여 화면을 표시합니다.
terminalgst-launch-1.0 v4l2src ! videoconvert ! ximagesink
제조업체만의 모듈을 사용하면 확장이 가능합니다.
참조(STEP): https://www.argocorp.com/software/DL/tis/Linux/RaspberryPI_USB.html
참조(Giithub): https://github.com/TheImagingSource/tiscamera
참조(Tutorial): https://www.theimagingsource.com/documentation/tiscamera/tutorial.html
terminalgst-launch-1.0 tcamsrc serial=<serial>! video/x-bayer,width=2592,height=1944,framerate=15/2 ! tcamwhitebalance auto=false red="75" green="65" blue="115" ! bayer2rgb !
jpegenc ! multifilesink location=/home/xxxx/output%d.jpeg
Gstreamer에 대한 파이프라인은 상세하지 않아도
Gstreamer가 감싼 파이톤의 잠금 메모리 파일도 사용하기 때문에 웹 카메라와 동등하게 제어할 수 있다.
참조: https://www.argocorp.com/UVC_camera/Sample_Python_ExternalTrigger.html
실행 결과
제조사가 만든 모듈을 사용하지 않아도 노출 시간과 이득을 조절할 수 있을 뿐만 아니라 트리거와 플래시를 제어할 수 있다.
제조업체가 제조한 모듈을 사용하여 gstreamer의 파이프라인을 무의식적으로 간단하게 인코딩할 수 있어 초보자가 파이톤을 실현할 때 등에 적합하다.
웹 카메라보다 해상도가 높은 카메라를 사용했기 때문에 몇몇 촬영된 이미지도 예쁘게 얻을 수 있다.
결론
웹 카메라에서도 간단한 이미지를 얻을 수 있지만, 아무리 해도 색상의 재현성과 화이트 점프를 피할 수 없다.따라서 소형 카메라를 제어할 수 있는 산업용 카메라를 사용할 수 있어 기초 검사 시스템과 차량 적재 카메라 시스템 등에 활용할 수 있다.
Reference
이 문제에 관하여(WEB 카메라와 산업용 UVC 카메라 v4l2-ctrl의 속성 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/cocopa/items/45c5d2b1b7de4ad9fcb8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
일반적으로 Linux 커널의 카메라 드라이버 Video for Linux Two(V4L2)를 비디오 캡처 API로 구현합니다.
가장 가까운 linux(Linux 2.6.26 이후)라면 V4L2, UVC 카메라 드라이브가 내장되어 있습니다.
검증할 카메라 정보
웹 카메라에 사용되는 규격의 UVC(USB Video Class) 카메라를 사용합니다.
장치 제어에는 v4l2의 범용 Linux 드라이버를 사용할 수 있습니다.
참조: https://www.argocorp.com/UVC_camera/Linux.html
v4l2 명령을 사용하여 속성 확인
v4l-ctl 명령에서 "-list formats"를 선택적으로 지정하면 Video 4 Linux2에서 지원하는 속성을 확인할 수 있습니다.
참조: https://leico.github.io/TechnicalNote/Linux/webcam-usage
WEB 카메라 속성 확인
사용된 카메라: Logiitech(논리적) 웹 카메라 V-U0015
카메라 속성 정보 확인
terminal-webcamerapi@raspberrypi:~ $ v4l2-ctl --list-ctrls
brightness 0x00980900 (int) : min=0 max=255 step=1 default=128 value=128
contrast 0x00980901 (int) : min=0 max=255 step=1 default=32 value=32
saturation 0x00980902 (int) : min=0 max=255 step=1 default=32 value=32
white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
gain 0x00980913 (int) : min=0 max=255 step=1 default=64 value=64
power_line_frequency 0x00980918 (menu) : min=0 max=2 default=2 value=2
white_balance_temperature 0x0098091a (int) : min=0 max=10000 step=10 default=4000 value=4000 flags=inactive
sharpness 0x0098091b (int) : min=0 max=255 step=1 default=24 value=24
backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=0 value=0
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
exposure_absolute 0x009a0902 (int) : min=1 max=10000 step=1 default=166 value=166 flags=inactive
exposure_auto_priority 0x009a0903 (bool) : default=0 value=1
led1_mode 0x0a046d05 (menu) : min=0 max=3 default=3 value=3
led1_frequency 0x0a046d06 (int) : min=0 max=131 step=1 default=0 value=0
색조, 화이트 밸런스(연결만 끊기), 이득, 자동 노출, 고정 노출 시간, 대비도 등을 조절할 수 있다.
led1_mode 및 led1frequency와 같은 LED 표시등을 변경할 수 있는 것이 특징이다.
일단 화면에 올리고.
gstreamer의 파이프라인을 사용하여 화면을 표시합니다.
참조: https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c
terminalgst-launch-1.0 v4l2src ! videoconvert ! ximagesink
실제로 노출 시간을 설정해 보자.자동 노출을 끄고 노출 시간을 설정합니다.
terminalv4l2-ctl --set-ctrl=exposure_auto=1,exposure_absolute=30
실행 결과
자동 노출을 끄더라도 자동 이득이 효과가 있기 때문에 카메라가 어두운 곳에서 밝은 곳으로 투영되면 약간의 흰색 비행이 있을 것이다.
다만, 빠르게 움직이는 물체, 밝기의 제어와 촉발 처리가 필요하지 않으면 별다른 어려움이 없다.
공업용 사진기
사용된 카메라: TheImaging Source 산업용 카메라 DFK33 UP2000
카메라 속성 정보 확인
terminal-industrial-camerapi@raspberrypi:~ $ v4l2-ctl --list-ctrls
saturation 0x00980902 (int) : min=0 max=255 step=1 default=64 value=64
hue 0x00980903 (int) : min=-180 max=180 step=1 default=0 value=0
white_balance_component_auto 0x0098090c (bool) : default=1 value=1
white_balance_red_component 0x0098090e (int) : min=0 max=255 step=1 default=64 value=69 flags=inactive
white_balance_blue_component 0x0098090f (int) : min=0 max=255 step=1 default=64 value=125 flags=inactive
gamma 0x00980910 (int) : min=1 max=500 step=1 default=100 value=100
gain 0x00980913 (int) : min=144 max=1200 step=1 default=144 value=144
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
exposure_absolute 0x009a0902 (int) : min=1 max=100000 step=1 default=3 value=3 flags=inactive
exposure_time_us 0x0199e201 (int) : min=50 max=10000000 step=1 default=333 value=333
auto_shutter 0x0199e202 (bool) : default=1 value=1
auto_exposure_reference 0x0199e203 (int) : min=0 max=255 step=1 default=128 value=128
gain_auto 0x0199e205 (bool) : default=1 value=1
trigger_mode 0x0199e208 (bool) : default=0 value=0
software_trigger 0x0199e209 (button) : flags=write-only
trigger_delay 0x0199e210 (int) : min=0 max=1000000 step=1 default=0 value=159
strobe_enable 0x0199e211 (bool) : default=0 value=0
strobe_polarity 0x0199e212 (bool) : default=0 value=0
strobe_exposure 0x0199e213 (bool) : default=0 value=0
gpout 0x0199e216 (bool) : default=0 value=0
gpin 0x0199e217 (bool) : default=0 value=0
roi_offset_x 0x0199e218 (int) : min=0 max=1664 step=32 default=0 value=0
roi_offset_y 0x0199e219 (int) : min=0 max=1184 step=4 default=0 value=0
roi_auto_center 0x0199e220 (bool) : default=1 value=1
trigger_polarity 0x0199e234 (menu) : min=0 max=1 default=0 value=1
trigger_burst_count 0x0199e237 (int) : min=1 max=1000 step=1 default=1 value=1
trigger_debounce_time_us 0x0199e238 (int) : min=0 max=1000000 step=1 default=0 value=0
trigger_mask_time_us 0x0199e239 (int) : min=0 max=1000000 step=1 default=0 value=0
trigger_noise_suppression_time 0x0199e240 (int) : min=0 max=1000000 step=1 default=0 value=0
auto_functions_roi_control 0x0199e241 (bool) : default=1 value=1
auto_functions_roi_left 0x0199e242 (int) : min=0 max=1904 step=1 default=0 value=480
auto_functions_roi_top 0x0199e243 (int) : min=0 max=1184 step=1 default=0 value=300
auto_functions_roi_width 0x0199e244 (int) : min=16 max=1920 step=1 default=0 value=960
auto_functions_roi_height 0x0199e245 (int) : min=16 max=1200 step=1 default=0 value=600
white_balance_mode 0x0199e246 (menu) : min=0 max=1 default=0 value=0
white_balance_auto_preset 0x0199e247 (menu) : min=0 max=4 default=0 value=0
white_balance_green_component 0x0199e248 (int) : min=0 max=255 step=1 default=64 value=64
white_balance_temp_preset 0x0199e249 (menu) : min=0 max=8 default=6500 value=4
white_balance_temperature 0x0199e250 (int) : min=2500 max=10000 step=100 default=6500 value=4000
exposure_auto_upper_limit_auto 0x0199e254 (bool) : default=1 value=1
exposure_auto_upper_limit_us 0x0199e256 (int) : min=50 max=1000000 step=1 default=333 value=33333
override_scanning_mode 0x0199e257 (int) : min=1 max=16 step=1 default=1 value=0
auto_functions_roi_preset 0x0199e258 (menu) : min=0 max=5 default=2 value=2
trigger_global_reset_release 0x0199e261 (bool) : default=0 value=0
설정할 수 있는 항목 수는 웹 카메라에 비해 압도적으로 많다.
산업용 카메라 중 웹 카메라만 있는 프로젝트
led1_mode 및 led1frequency와 같은 LED 표시등 항목에만 한정됩니다.
이득과 노출 시간뿐만 아니라 트리거, 깜빡임, 화이트 밸런스, 픽셀 잘라내기(ROI)도 설정할 수 있다.
일단 화면에 올리고.
웹 카메라와 마찬가지로 gstreamer의 파이프라인을 사용하여 화면을 표시합니다.
terminalgst-launch-1.0 v4l2src ! videoconvert ! ximagesink
제조업체만의 모듈을 사용하면 확장이 가능합니다.
참조(STEP): https://www.argocorp.com/software/DL/tis/Linux/RaspberryPI_USB.html
참조(Giithub): https://github.com/TheImagingSource/tiscamera
참조(Tutorial): https://www.theimagingsource.com/documentation/tiscamera/tutorial.html
terminalgst-launch-1.0 tcamsrc serial=<serial>! video/x-bayer,width=2592,height=1944,framerate=15/2 ! tcamwhitebalance auto=false red="75" green="65" blue="115" ! bayer2rgb !
jpegenc ! multifilesink location=/home/xxxx/output%d.jpeg
Gstreamer에 대한 파이프라인은 상세하지 않아도
Gstreamer가 감싼 파이톤의 잠금 메모리 파일도 사용하기 때문에 웹 카메라와 동등하게 제어할 수 있다.
참조: https://www.argocorp.com/UVC_camera/Sample_Python_ExternalTrigger.html
실행 결과
제조사가 만든 모듈을 사용하지 않아도 노출 시간과 이득을 조절할 수 있을 뿐만 아니라 트리거와 플래시를 제어할 수 있다.
제조업체가 제조한 모듈을 사용하여 gstreamer의 파이프라인을 무의식적으로 간단하게 인코딩할 수 있어 초보자가 파이톤을 실현할 때 등에 적합하다.
웹 카메라보다 해상도가 높은 카메라를 사용했기 때문에 몇몇 촬영된 이미지도 예쁘게 얻을 수 있다.
결론
웹 카메라에서도 간단한 이미지를 얻을 수 있지만, 아무리 해도 색상의 재현성과 화이트 점프를 피할 수 없다.따라서 소형 카메라를 제어할 수 있는 산업용 카메라를 사용할 수 있어 기초 검사 시스템과 차량 적재 카메라 시스템 등에 활용할 수 있다.
Reference
이 문제에 관하여(WEB 카메라와 산업용 UVC 카메라 v4l2-ctrl의 속성 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/cocopa/items/45c5d2b1b7de4ad9fcb8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
v4l-ctl 명령에서 "-list formats"를 선택적으로 지정하면 Video 4 Linux2에서 지원하는 속성을 확인할 수 있습니다.
참조: https://leico.github.io/TechnicalNote/Linux/webcam-usage
WEB 카메라 속성 확인
사용된 카메라: Logiitech(논리적) 웹 카메라 V-U0015
카메라 속성 정보 확인
terminal-webcamerapi@raspberrypi:~ $ v4l2-ctl --list-ctrls
brightness 0x00980900 (int) : min=0 max=255 step=1 default=128 value=128
contrast 0x00980901 (int) : min=0 max=255 step=1 default=32 value=32
saturation 0x00980902 (int) : min=0 max=255 step=1 default=32 value=32
white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
gain 0x00980913 (int) : min=0 max=255 step=1 default=64 value=64
power_line_frequency 0x00980918 (menu) : min=0 max=2 default=2 value=2
white_balance_temperature 0x0098091a (int) : min=0 max=10000 step=10 default=4000 value=4000 flags=inactive
sharpness 0x0098091b (int) : min=0 max=255 step=1 default=24 value=24
backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=0 value=0
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
exposure_absolute 0x009a0902 (int) : min=1 max=10000 step=1 default=166 value=166 flags=inactive
exposure_auto_priority 0x009a0903 (bool) : default=0 value=1
led1_mode 0x0a046d05 (menu) : min=0 max=3 default=3 value=3
led1_frequency 0x0a046d06 (int) : min=0 max=131 step=1 default=0 value=0
색조, 화이트 밸런스(연결만 끊기), 이득, 자동 노출, 고정 노출 시간, 대비도 등을 조절할 수 있다.
led1_mode 및 led1frequency와 같은 LED 표시등을 변경할 수 있는 것이 특징이다.
일단 화면에 올리고.
gstreamer의 파이프라인을 사용하여 화면을 표시합니다.
참조: https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c
terminalgst-launch-1.0 v4l2src ! videoconvert ! ximagesink
실제로 노출 시간을 설정해 보자.자동 노출을 끄고 노출 시간을 설정합니다.
terminalv4l2-ctl --set-ctrl=exposure_auto=1,exposure_absolute=30
실행 결과
자동 노출을 끄더라도 자동 이득이 효과가 있기 때문에 카메라가 어두운 곳에서 밝은 곳으로 투영되면 약간의 흰색 비행이 있을 것이다.
다만, 빠르게 움직이는 물체, 밝기의 제어와 촉발 처리가 필요하지 않으면 별다른 어려움이 없다.
공업용 사진기
사용된 카메라: TheImaging Source 산업용 카메라 DFK33 UP2000
카메라 속성 정보 확인
terminal-industrial-camerapi@raspberrypi:~ $ v4l2-ctl --list-ctrls
saturation 0x00980902 (int) : min=0 max=255 step=1 default=64 value=64
hue 0x00980903 (int) : min=-180 max=180 step=1 default=0 value=0
white_balance_component_auto 0x0098090c (bool) : default=1 value=1
white_balance_red_component 0x0098090e (int) : min=0 max=255 step=1 default=64 value=69 flags=inactive
white_balance_blue_component 0x0098090f (int) : min=0 max=255 step=1 default=64 value=125 flags=inactive
gamma 0x00980910 (int) : min=1 max=500 step=1 default=100 value=100
gain 0x00980913 (int) : min=144 max=1200 step=1 default=144 value=144
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
exposure_absolute 0x009a0902 (int) : min=1 max=100000 step=1 default=3 value=3 flags=inactive
exposure_time_us 0x0199e201 (int) : min=50 max=10000000 step=1 default=333 value=333
auto_shutter 0x0199e202 (bool) : default=1 value=1
auto_exposure_reference 0x0199e203 (int) : min=0 max=255 step=1 default=128 value=128
gain_auto 0x0199e205 (bool) : default=1 value=1
trigger_mode 0x0199e208 (bool) : default=0 value=0
software_trigger 0x0199e209 (button) : flags=write-only
trigger_delay 0x0199e210 (int) : min=0 max=1000000 step=1 default=0 value=159
strobe_enable 0x0199e211 (bool) : default=0 value=0
strobe_polarity 0x0199e212 (bool) : default=0 value=0
strobe_exposure 0x0199e213 (bool) : default=0 value=0
gpout 0x0199e216 (bool) : default=0 value=0
gpin 0x0199e217 (bool) : default=0 value=0
roi_offset_x 0x0199e218 (int) : min=0 max=1664 step=32 default=0 value=0
roi_offset_y 0x0199e219 (int) : min=0 max=1184 step=4 default=0 value=0
roi_auto_center 0x0199e220 (bool) : default=1 value=1
trigger_polarity 0x0199e234 (menu) : min=0 max=1 default=0 value=1
trigger_burst_count 0x0199e237 (int) : min=1 max=1000 step=1 default=1 value=1
trigger_debounce_time_us 0x0199e238 (int) : min=0 max=1000000 step=1 default=0 value=0
trigger_mask_time_us 0x0199e239 (int) : min=0 max=1000000 step=1 default=0 value=0
trigger_noise_suppression_time 0x0199e240 (int) : min=0 max=1000000 step=1 default=0 value=0
auto_functions_roi_control 0x0199e241 (bool) : default=1 value=1
auto_functions_roi_left 0x0199e242 (int) : min=0 max=1904 step=1 default=0 value=480
auto_functions_roi_top 0x0199e243 (int) : min=0 max=1184 step=1 default=0 value=300
auto_functions_roi_width 0x0199e244 (int) : min=16 max=1920 step=1 default=0 value=960
auto_functions_roi_height 0x0199e245 (int) : min=16 max=1200 step=1 default=0 value=600
white_balance_mode 0x0199e246 (menu) : min=0 max=1 default=0 value=0
white_balance_auto_preset 0x0199e247 (menu) : min=0 max=4 default=0 value=0
white_balance_green_component 0x0199e248 (int) : min=0 max=255 step=1 default=64 value=64
white_balance_temp_preset 0x0199e249 (menu) : min=0 max=8 default=6500 value=4
white_balance_temperature 0x0199e250 (int) : min=2500 max=10000 step=100 default=6500 value=4000
exposure_auto_upper_limit_auto 0x0199e254 (bool) : default=1 value=1
exposure_auto_upper_limit_us 0x0199e256 (int) : min=50 max=1000000 step=1 default=333 value=33333
override_scanning_mode 0x0199e257 (int) : min=1 max=16 step=1 default=1 value=0
auto_functions_roi_preset 0x0199e258 (menu) : min=0 max=5 default=2 value=2
trigger_global_reset_release 0x0199e261 (bool) : default=0 value=0
설정할 수 있는 항목 수는 웹 카메라에 비해 압도적으로 많다.
산업용 카메라 중 웹 카메라만 있는 프로젝트
led1_mode 및 led1frequency와 같은 LED 표시등 항목에만 한정됩니다.
이득과 노출 시간뿐만 아니라 트리거, 깜빡임, 화이트 밸런스, 픽셀 잘라내기(ROI)도 설정할 수 있다.
일단 화면에 올리고.
웹 카메라와 마찬가지로 gstreamer의 파이프라인을 사용하여 화면을 표시합니다.
terminalgst-launch-1.0 v4l2src ! videoconvert ! ximagesink
제조업체만의 모듈을 사용하면 확장이 가능합니다.
참조(STEP): https://www.argocorp.com/software/DL/tis/Linux/RaspberryPI_USB.html
참조(Giithub): https://github.com/TheImagingSource/tiscamera
참조(Tutorial): https://www.theimagingsource.com/documentation/tiscamera/tutorial.html
terminalgst-launch-1.0 tcamsrc serial=<serial>! video/x-bayer,width=2592,height=1944,framerate=15/2 ! tcamwhitebalance auto=false red="75" green="65" blue="115" ! bayer2rgb !
jpegenc ! multifilesink location=/home/xxxx/output%d.jpeg
Gstreamer에 대한 파이프라인은 상세하지 않아도
Gstreamer가 감싼 파이톤의 잠금 메모리 파일도 사용하기 때문에 웹 카메라와 동등하게 제어할 수 있다.
참조: https://www.argocorp.com/UVC_camera/Sample_Python_ExternalTrigger.html
실행 결과
제조사가 만든 모듈을 사용하지 않아도 노출 시간과 이득을 조절할 수 있을 뿐만 아니라 트리거와 플래시를 제어할 수 있다.
제조업체가 제조한 모듈을 사용하여 gstreamer의 파이프라인을 무의식적으로 간단하게 인코딩할 수 있어 초보자가 파이톤을 실현할 때 등에 적합하다.
웹 카메라보다 해상도가 높은 카메라를 사용했기 때문에 몇몇 촬영된 이미지도 예쁘게 얻을 수 있다.
결론
웹 카메라에서도 간단한 이미지를 얻을 수 있지만, 아무리 해도 색상의 재현성과 화이트 점프를 피할 수 없다.따라서 소형 카메라를 제어할 수 있는 산업용 카메라를 사용할 수 있어 기초 검사 시스템과 차량 적재 카메라 시스템 등에 활용할 수 있다.
Reference
이 문제에 관하여(WEB 카메라와 산업용 UVC 카메라 v4l2-ctrl의 속성 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/cocopa/items/45c5d2b1b7de4ad9fcb8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pi@raspberrypi:~ $ v4l2-ctl --list-ctrls
brightness 0x00980900 (int) : min=0 max=255 step=1 default=128 value=128
contrast 0x00980901 (int) : min=0 max=255 step=1 default=32 value=32
saturation 0x00980902 (int) : min=0 max=255 step=1 default=32 value=32
white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
gain 0x00980913 (int) : min=0 max=255 step=1 default=64 value=64
power_line_frequency 0x00980918 (menu) : min=0 max=2 default=2 value=2
white_balance_temperature 0x0098091a (int) : min=0 max=10000 step=10 default=4000 value=4000 flags=inactive
sharpness 0x0098091b (int) : min=0 max=255 step=1 default=24 value=24
backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=0 value=0
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
exposure_absolute 0x009a0902 (int) : min=1 max=10000 step=1 default=166 value=166 flags=inactive
exposure_auto_priority 0x009a0903 (bool) : default=0 value=1
led1_mode 0x0a046d05 (menu) : min=0 max=3 default=3 value=3
led1_frequency 0x0a046d06 (int) : min=0 max=131 step=1 default=0 value=0
gst-launch-1.0 v4l2src ! videoconvert ! ximagesink
v4l2-ctl --set-ctrl=exposure_auto=1,exposure_absolute=30
사용된 카메라: TheImaging Source 산업용 카메라 DFK33 UP2000
카메라 속성 정보 확인
terminal-industrial-camera
pi@raspberrypi:~ $ v4l2-ctl --list-ctrls
saturation 0x00980902 (int) : min=0 max=255 step=1 default=64 value=64
hue 0x00980903 (int) : min=-180 max=180 step=1 default=0 value=0
white_balance_component_auto 0x0098090c (bool) : default=1 value=1
white_balance_red_component 0x0098090e (int) : min=0 max=255 step=1 default=64 value=69 flags=inactive
white_balance_blue_component 0x0098090f (int) : min=0 max=255 step=1 default=64 value=125 flags=inactive
gamma 0x00980910 (int) : min=1 max=500 step=1 default=100 value=100
gain 0x00980913 (int) : min=144 max=1200 step=1 default=144 value=144
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
exposure_absolute 0x009a0902 (int) : min=1 max=100000 step=1 default=3 value=3 flags=inactive
exposure_time_us 0x0199e201 (int) : min=50 max=10000000 step=1 default=333 value=333
auto_shutter 0x0199e202 (bool) : default=1 value=1
auto_exposure_reference 0x0199e203 (int) : min=0 max=255 step=1 default=128 value=128
gain_auto 0x0199e205 (bool) : default=1 value=1
trigger_mode 0x0199e208 (bool) : default=0 value=0
software_trigger 0x0199e209 (button) : flags=write-only
trigger_delay 0x0199e210 (int) : min=0 max=1000000 step=1 default=0 value=159
strobe_enable 0x0199e211 (bool) : default=0 value=0
strobe_polarity 0x0199e212 (bool) : default=0 value=0
strobe_exposure 0x0199e213 (bool) : default=0 value=0
gpout 0x0199e216 (bool) : default=0 value=0
gpin 0x0199e217 (bool) : default=0 value=0
roi_offset_x 0x0199e218 (int) : min=0 max=1664 step=32 default=0 value=0
roi_offset_y 0x0199e219 (int) : min=0 max=1184 step=4 default=0 value=0
roi_auto_center 0x0199e220 (bool) : default=1 value=1
trigger_polarity 0x0199e234 (menu) : min=0 max=1 default=0 value=1
trigger_burst_count 0x0199e237 (int) : min=1 max=1000 step=1 default=1 value=1
trigger_debounce_time_us 0x0199e238 (int) : min=0 max=1000000 step=1 default=0 value=0
trigger_mask_time_us 0x0199e239 (int) : min=0 max=1000000 step=1 default=0 value=0
trigger_noise_suppression_time 0x0199e240 (int) : min=0 max=1000000 step=1 default=0 value=0
auto_functions_roi_control 0x0199e241 (bool) : default=1 value=1
auto_functions_roi_left 0x0199e242 (int) : min=0 max=1904 step=1 default=0 value=480
auto_functions_roi_top 0x0199e243 (int) : min=0 max=1184 step=1 default=0 value=300
auto_functions_roi_width 0x0199e244 (int) : min=16 max=1920 step=1 default=0 value=960
auto_functions_roi_height 0x0199e245 (int) : min=16 max=1200 step=1 default=0 value=600
white_balance_mode 0x0199e246 (menu) : min=0 max=1 default=0 value=0
white_balance_auto_preset 0x0199e247 (menu) : min=0 max=4 default=0 value=0
white_balance_green_component 0x0199e248 (int) : min=0 max=255 step=1 default=64 value=64
white_balance_temp_preset 0x0199e249 (menu) : min=0 max=8 default=6500 value=4
white_balance_temperature 0x0199e250 (int) : min=2500 max=10000 step=100 default=6500 value=4000
exposure_auto_upper_limit_auto 0x0199e254 (bool) : default=1 value=1
exposure_auto_upper_limit_us 0x0199e256 (int) : min=50 max=1000000 step=1 default=333 value=33333
override_scanning_mode 0x0199e257 (int) : min=1 max=16 step=1 default=1 value=0
auto_functions_roi_preset 0x0199e258 (menu) : min=0 max=5 default=2 value=2
trigger_global_reset_release 0x0199e261 (bool) : default=0 value=0
설정할 수 있는 항목 수는 웹 카메라에 비해 압도적으로 많다.산업용 카메라 중 웹 카메라만 있는 프로젝트
led1_mode 및 led1frequency와 같은 LED 표시등 항목에만 한정됩니다.
이득과 노출 시간뿐만 아니라 트리거, 깜빡임, 화이트 밸런스, 픽셀 잘라내기(ROI)도 설정할 수 있다.
일단 화면에 올리고.
웹 카메라와 마찬가지로 gstreamer의 파이프라인을 사용하여 화면을 표시합니다.
terminal
gst-launch-1.0 v4l2src ! videoconvert ! ximagesink
제조업체만의 모듈을 사용하면 확장이 가능합니다.참조(STEP): https://www.argocorp.com/software/DL/tis/Linux/RaspberryPI_USB.html
참조(Giithub): https://github.com/TheImagingSource/tiscamera
참조(Tutorial): https://www.theimagingsource.com/documentation/tiscamera/tutorial.html
terminal
gst-launch-1.0 tcamsrc serial=<serial>! video/x-bayer,width=2592,height=1944,framerate=15/2 ! tcamwhitebalance auto=false red="75" green="65" blue="115" ! bayer2rgb !
jpegenc ! multifilesink location=/home/xxxx/output%d.jpeg
Gstreamer에 대한 파이프라인은 상세하지 않아도Gstreamer가 감싼 파이톤의 잠금 메모리 파일도 사용하기 때문에 웹 카메라와 동등하게 제어할 수 있다.
참조: https://www.argocorp.com/UVC_camera/Sample_Python_ExternalTrigger.html
실행 결과
제조사가 만든 모듈을 사용하지 않아도 노출 시간과 이득을 조절할 수 있을 뿐만 아니라 트리거와 플래시를 제어할 수 있다.
제조업체가 제조한 모듈을 사용하여 gstreamer의 파이프라인을 무의식적으로 간단하게 인코딩할 수 있어 초보자가 파이톤을 실현할 때 등에 적합하다.
웹 카메라보다 해상도가 높은 카메라를 사용했기 때문에 몇몇 촬영된 이미지도 예쁘게 얻을 수 있다.
결론
웹 카메라에서도 간단한 이미지를 얻을 수 있지만, 아무리 해도 색상의 재현성과 화이트 점프를 피할 수 없다.따라서 소형 카메라를 제어할 수 있는 산업용 카메라를 사용할 수 있어 기초 검사 시스템과 차량 적재 카메라 시스템 등에 활용할 수 있다.
Reference
이 문제에 관하여(WEB 카메라와 산업용 UVC 카메라 v4l2-ctrl의 속성 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/cocopa/items/45c5d2b1b7de4ad9fcb8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(WEB 카메라와 산업용 UVC 카메라 v4l2-ctrl의 속성 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cocopa/items/45c5d2b1b7de4ad9fcb8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)