본문 바로가기
개발/OpenCV

2023.07.24 OpenCV Day1(4.Createimg ~ 6.Drawing)

by 상달군 2023. 8. 21.
728x90

목차.

4.Createimg

5.Copyimg

6.Drawing


4.Createimg

🎈 240x320의 크기를 가진 numpy이용하여 여러개 만들어보기 !

import cv2
import numpy as np

# 240x320 크기의 이미지 각 픽셀은 초기화되지 않은 랜덤 값으로 채워집니다. 흑백 이미지 생성
img1 = np.empty((240, 320), dtype=np.uint8)

# 240x320 크기의 0으로 채워진 컬러 이미지 생성 (RGB값이 모두 0이기에 검정색)
img2 = np.zeros((240, 320, 3), dtype=np.uint8)

# 240x320 크기의 값이 모두 120인 흑백 이미지 생성
img3 = np.ones((240, 320), dtype=np.uint8) * 120

# 240x320 크기의 값이 (255, 102, 255)인 컬러 이미지 생성
img4 = np.full((240, 320, 3), (255, 102, 255), dtype=np.uint8)


cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.imshow('img3', img3)
cv2.imshow('img4', img4)
cv2.waitKey()


5.Copyimg

🎈 영상 복사해보기 

🔹 아래 처럼 복사시 메모리 공간만 공유하는것이기 때문에  img_copy를 수정시 img_origin 까지 손상이 될수 있다. 

import cv2

img_origin = cv2.imread('./dog.bmp')


# 메모리가 공유하고 있기때문에 원본을 건들면 copy도 변화된다. 

img_origin = img_origin[91:210, 125:245] # 범위 선택해서 짜르기 
img_copy = img_origin

🔹완벽한 복사 

# .copy()를 이용해야 메모리 공유가 아닌 진짜 복사 된다!
img_copy = img_origin[91:210, 125:245].copy()

cv2.imshow('img_origin',img_origin)
cv2.imshow('img_copy',img_copy)
cv2.waitKey()

6.Drawing

🎈 그림그리기!

🔹 500x500 사이즈의 빈 흰색 영상을 생성

🔹 빨간색 직선 그리기

🔹 녹색 사각형 그린후 녹색으로 채우기

🔹 문자열 빨간글씨로 쓰기 

import cv2
import numpy as np

# 500x500 크기의 흰색 배경 이미지 생성
img = np.full((500, 500, 3), 255, np.uint8)

# (70, 70)에서 (200, 70)까지 빨간색 직선 그리기 (선 두께: 5)
cv2.line(img, (70, 70), (200,70), (0,0,255), 5)
# (50, 200)을 왼쪽 위 꼭지점으로 하는 크기 150x100의 녹색 사각형 그리기 (채우기)
cv2.rectangle(img, (50, 200, 150, 100), (0, 255, 0), -1)
# 중심 좌표 (300, 100)에 반지름 50인 노란색 원 그리기 (채우기)
cv2.circle(img, (300, 100), 50, (255, 255, 0), -1)

# 문자열을 생성하여 좌표 (30, 350)에 크기 2의 빨간색 글씨로 그리기
str = 'Hello OpenCV'
cv2.putText(img, str, (30,350), cv2.FONT_HERSHEY_SIMPLEX, 2, (0,0,255))

cv2.imshow('img', img)
cv2.waitKey()

728x90

'개발 > OpenCV' 카테고리의 다른 글

2023.07.24 OpenCV Day1(OpenCV~Imageinfo)  (0) 2023.08.21
2023.07.24 OpenCV란?  (0) 2023.08.10

댓글