vision_camera

영상처리, 인공지능 비전 기술을 사용합니다.

Class: Camera

class openpibo.vision_camera.Camera(cam=0, width=None, height=None)[소스]

기반 클래스: object

Functions: imread() read() create_matte() imshow_to_ide() resize() rotate() imwrite() draw_bitmap() rectangle() circle() line() putTextPIL() putText() stylization() detailEnhance() pencilSketch() edgePreservingFilter() flip()

파이보의 카메라를 제어합니다.

  • 사진 촬영, 읽기, 쓰기 등 카메라 기본 기능을 사용할 수 있습니다.

  • 이미지에 도형/글자를 추가할 수 있습니다.

  • 이미지를 변환할 수 있습니다.

example:

from openpibo.vision_camera import Camera

camera = Camera()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
release()[소스]
imread(filename)[소스]

이미지 파일을 읽습니다.

매개변수:

filename (str) – 사용할 이미지 파일

반환:

numpy.ndarray 타입 이미지 객체

read()[소스]

카메라를 통해 이미지를 촬영합니다. 해상도 변경 시 이미지가 깨질 수 있으므로, 기본 해상도를 권장합니다.

반환:

numpy.ndarray 타입 이미지 객체

create_matte(colors=(255, 255, 255))[소스]
imshow(img, ratio=1.0)[소스]

이미지 파일을 Web IDE에 출력합니다.

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • ratio (float) – 이미지 사이즈 변환 비율 (다수 동시 사용시, 네트워크 부하)

imshow_to_ide(img, ratio=0.25)[소스]

이미지 파일을 Web IDE에 출력합니다.

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • ratio (float) – 이미지 사이즈 변환 비율 (다수 동시 사용시, 네트워크 부하)

resize(img, w, h)[소스]

Opencv 이미지의 크기를 변환합니다.

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • w (int) – 변환될 이미지의 가로 크기입니다. (픽셀 단위)

  • h (int) – 변환될 이미지의 세로 크기입니다. (픽셀 단위)

반환:

크기 변환 후의 numpy.ndarray 이미지 객체

rotate(img, degree=10, ratio=0.9)[소스]

이미지를 회전시킵니다.

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • degree (int) – 회전할 각도

  • ratio (float) – 축소 또는 확대할 비율

반환:

회전한 numpy.ndarray 이미지 객체

imwrite(filename, img)[소스]

이미지를 파일로 저장합니다.

매개변수:
  • filename (str) – 저장할 파일 경로(jpg, png)

  • img (numpy.ndarray) – 저장할 이미지 객체

draw_bitmap(w, h, val, background=(255, 255, 255), pixel=(0, 0, 0))[소스]

비트맨 데이터를 이미지로 생성성합니다.

매개변수:
  • w (int) – bitmap 가로 길이

  • h (int) – bitmap 세로 길이

  • background (tuple) – 배경 색상

  • pixel (tuple) – 비트 색상

반환:

numpy.ndarray 이미지 객체

rectangle(img, p1, p2, colors=(255, 255, 255), tickness=1)[소스]

이미지에 직사각형을 그립니다.

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • p1 (tuple(int, int)) – 좌측상단 좌표 (x, y)

  • p2 (tuple(int, int)) – 우측하단 좌표 (x, y)

  • colors (tuple(int, int, int)) – RGB 값 (r, g, b) or 16진수 값 ‘#ffffff’

  • tickness (int) – 사각형 모서리의 두께 (픽셀 단위) -1 은 채움

circle(img, p, r, colors=(255, 255, 255), tickness=1)[소스]

이미지에 원을을 그립니다.

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • p (tuple(int, int)) – 좌측상단 좌표 (x, y)

  • r (int) – 반지름

  • colors (tuple(int, int, int)) – RGB 값 (r, g, b) or 16진수 값 ‘#ffffff’

  • tickness (int) – 사각형 모서리의 두께 (픽셀 단위) -1은 채움

line(img, p1, p2, colors=(255, 255, 255), tickness=1)[소스]

이미지에 직선을 그립니다.

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • p1 (tuple(int, int)) – 시작 좌표 (x, y)

  • p2 (tuple(int, int)) – 끝 좌표 (x, y)

  • colors (tuple(int, int, int)) – RGB 값 (r, g, b) or 16진수 값 ‘#ffffff’

  • tickness (int) – 선의 두께 (픽셀 단위)

putTextPIL(img, text, points, size=30, colors=(255, 255, 255))[소스]

이미지에 문자를 입력합니다. (한/영 가능 - pillow 이용)

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • text (str) – 표시할 문자열

  • points (tuple(int, int)) – 텍스트 블록 좌측상단 좌표 (x, y)

  • size (int) – 표시할 글자의 크기

  • colors (tuple(int, int, int)) – 글자 색깔 RGB 값 (b, g, r) or 16진수 값 ‘#ffffff’

putText(img, text, points, size=1, colors=(255, 255, 255), tickness=1)[소스]

이미지에 문자를 입력합니다. (영어만 가능)

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • text (str) – 표시할 문자열

  • points (tuple(int, int)) – 텍스트 블록 좌측하단 좌표 (x, y)

  • size (int) – 표시할 글자의 크기

  • colors (tuple(int, int, int)) – 글자 색깔 RGB 값 (r, g, b) or 16진수 값 ‘#ffffff’

  • tickness (int) – 글자 두께

stylization(img, sigma_s=100, sigma_r=0.5)[소스]

만화 이미지로 변환합니다. (opencv api) low speed

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • sigma_s (float) – 이미지의 blur 보존 정도 (1-200)

  • sigma_r (float) – 이미지의 Edge 적용 정도 (0-1)

반환:

numpy.ndarray 이미지 객체

detailEnhance(img, sigma_s=100, sigma_r=0.05)[소스]

만화 이미지로 변환합니다. (opencv api)

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • sigma_s (float) – 이미지의 blur 보존 정도 (1-200)

  • sigma_r (float) – 이미지의 Edge 적용 정도 (0-1)

반환:

numpy.ndarray 이미지 객체

pencilSketch(img, sigma_s=100, sigma_r=0.2, shade_factor=0.018)[소스]

스케치 이미지로 변환합니다.

example:

img = camera.read()
camera.sketchize(img)
매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • sigma_s (float) – 이미지의 blur 보존 정도 (1-200)

  • sigma_r (float) – 이미지의 Edge 적용 정도 (0-1)

  • shade_factor (float) – 이미지의 밝기 정도 (0-0.1)

반환:

numpy.ndarray 이미지 객체 / grayscale, bgr

edgePreservingFilter(img, flags=1, sigma_s=60, sigma_r=0.4)[소스]

흐림 이미지로 변환합니다.

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • flags (int) – 필터 종류 1 (RECURS_FILTER) or 2 (NORMCONV_FILTER)

  • sigma_s (float) – 이미지의 blur 보존 정도 (1-200)

  • sigma_r (float) – 이미지의 Edge 적용 정도 (0-1)

반환:

numpy.ndarray 이미지 객체

flip(img, flags=1)[소스]

상하/좌우 대칭 이미지로 변환합니다

매개변수:
  • img (numpy.ndarray) – 이미지 객체

  • flags (int) – 0: 상하 대칭, 1: 좌우 대칭, -1: 상하/좌우 대칭

반환:

numpy.ndarray 이미지 객체