컬러 영상을 변환
cvtColor(입력 영상, 출력 영상, 컬러 변환 코드)
cvtColor(img, img2, COLOR_BGR2GRAY);
컬러 영상을 그레이스케일로 변환
밝기 조절은 영상에 +n을 함으로써 조절
자료형이 가질 수 있는 값의 범위를 벗어나면 최솟값 또는 최댓값으로 원소 값 설정
cv2의 add,subtract 함수 활용
dst = cv.add(src, 100)
dst = cv.subtract(src, 100)
import cv2 as cv
import numpy as np
img = cv.imread('CV images/lenna.bmp',cv.IMREAD_GRAYSCALE)
cv.imshow('img',img)
cv.waitKey()
cv.destroyAllWindows()
dst = cv.add(img, 100)
dst2 = cv.subtract(img, 100)
cv.imshow('dst',dst)
cv.imshow('dst2',dst2)
cv.waitKey()
cv.destroyAllWindows()
numpy를 이용해서 빈 행렬을 직접 만들어준 후 이중 for문으로 값 저장해준다
dst = np.empty(img.shape, dtype = np.uint8)
for y in range(img.shape[0]):
for x in range(img.shape[1]):
dst[y][x] = saturated(img[y][x]+100)
결과는 같음
밝은 영역과 어두운 영역 사이에 드러나는 밝기 차이의 강도
높으면 선명해 보인다!
cv2의 multiply 함수를 사용
dst(x,y) = src(x,y) + (src(x,y)-128)*a
a가 -1 ~ 0 이라면 명암비가 감소
-1이라면 128만 남으므로 이미지가 중간값으로 통일됨
a가 0 이상이면 명암비가 증가
포화연산 필요!
각 픽셀별 개수를 막대그래프 형태로 표현
색의 분포를 확인할 수 있음
빈 : 히스토그램 가로축
작으면 대략적 형태가 되고 많으면 세밀한 형태가 됨
void calcHist(Mat img, int nimages, int channels, InputArray mask...)
256*1의 행렬을 반환해준다
직접 히스토그램 행렬을 막대그래프 형태로 나타내야함