📌
import cv2
# 이미지 형태 분석
def print_matInfo(name, image) :
#image : 이미지를 읽은 배열값.(이미지 데이터 값.)
# image.dtype : 배열요소의 자료형.
if image.dtype == 'uint8' : mat_type = "CV_8U" # 부호가 없는 8비트(0~225). 기본적인 지정방식.
elif image.dtype == 'int8' : mat_type = "CV_8S" # 부호가 있는 8비트(-128~127). 자바에서는 byte타입
elif image.dtype == 'uint16' : mat_type = "CV_16U" # 부호가 없는 16비트
elif image.dtype == 'int16' : mat_type = "CV_16S" # 부호가 있는 16비트
elif image.dtype == 'float32' : mat_type = "CV_32F" # 부호가 있는 32비트 실수형
elif image.dtype == 'float64' : mat_type = "CV_64F" # 부호가 있는 64비트 실수형
# image.ndim : 배열의 차수.(1차원인지 2차원인지 3차원인지)
# 1 차원이면 흑백, 3차원이면 컬러
nchannel = 3 if image.ndim == 3 else 1
print("%12s: dtype(%s), channels(%s) -> mat_type(%sC%d)"
% (name, image.dtype, nchannel, mat_type, nchannel))
# imread : 이미지 파일을 배열로 읽어낸다.(이미지 파일을 숫자로 저장하여 읽는다.)
gray2gray = cv2.imread("images/read_gray.jpg", cv2.IMREAD_GRAYSCALE)
gray2color = cv2.imread("images/read_gray.jpg", cv2.IMREAD_COLOR)
gray2colora = cv2.imread("images/read_gray.jpg", cv2.IMREAD_UNCHANGED)
color2gray = cv2.imread("images/read_color.jpg", cv2.IMREAD_GRAYSCALE)
color2color = cv2.imread("images/read_color.jpg", cv2.IMREAD_COLOR)
color2colora = cv2.imread("images/read_color.jpg", cv2.IMREAD_UNCHANGED)
print_matInfo("gray2gray", gray2gray)
print_matInfo("gray2color", gray2color)
print_matInfo("gray2colora", gray2colora)
print_matInfo("color2gray", color2gray)
print_matInfo("color2color", color2color)
print_matInfo("color2colora", color2colora)

#
color1 = cv2.imread("images/read_16.tif", cv2.IMREAD_UNCHANGED)
color2 = cv2.imread("images/read_32.tif", cv2.IMREAD_UNCHANGED)
color1.shape # (300, 400, 3)
color2.shape # (300, 400, 3)
color1[10,10]
color2[10,10]

cv2.imshow("read_16.tif", color1)
cv2.imshow("read_32.tif", color2)

print_matInfo("color1", color1)
print_matInfo("color2", color2)

# 사진의 밝기 조정
image = cv2.imread("images/read_gray.jpg", cv2.IMREAD_GRAYSCALE)
cv2.imshow("origimal image", image)

# openCv함수를 이용하여 사진의 밝기 조정
dst1 = cv2.add(image,100)
dst2 = cv2.subtract(image,100)
cv2.imshow("dst1 image", dst1)
cv2.imshow("dst2 image", dst2)

# numpy 배열을 이용하여 사진의 밝기 조정
dst3 = image + 100 # image 배열의 값 +100
dst4 = image - 100 # image 배열의 값 -100
cv2.imshow("dst3 image", dst3)
cv2.imshow("dst4 image", dst4)

'수업(국비지원) > Python' 카테고리의 다른 글
| [Python] 동영상 파일 저장, 출력, 저장된 동영상 이미지 색상 수정 (0) | 2023.04.27 |
|---|---|
| [Python] 동영상 파일 출력 (0) | 2023.04.27 |
| [Python] opencv - 이미지 출력 (0) | 2023.04.27 |
| [Python] 비지도 학습 - 군집 (0) | 2023.04.27 |
| [Python] 한글 분석 예제 - 맛집 리뷰 용어 분석하기2 (0) | 2023.04.27 |