[22.04.08] OpenCV(파이썬) - 화소 처리(화소 접근 방법, 밝기 변화, 히스토그램 등)
시험 싫어요
행렬정보를 만든다 => 영상을 만든다
reshape(2,5) -> 2행 5열
shape[0] -> 행 정보를 가져옴
shape[1] -> 열 정보를 가져옴
item(a,b) 화소의 값을 반환
itemset(a,b) 새롭게 할당?
행렬 원소 접근 방법
1. 배열의 첨자기능 활용
2. 넘파이 함수 사용
3. 룩업테이블 활용
- 행렬 정보 => 배열로 변경 / 파이썬 배열을 넘파이 배열로 변환? / 편리함
4. OpenCV 함수 이용
5. ndarray 활용 (연산자 오버로딩을 이용한 방식)
그레이스케일 != 흑백영상
== 명암도 영상 0 검은색 255흰색
j // 2 : 0, 1인 2단계 표현
j // 20* 10 : 단계 수 적음 => 계단현상
1, 2 => 최갯, 최솟 넘어가면 고정시킴
3, 4 나머지 값 연산을 활용
=> 가감연산 알고리즘이 다름
영상 합성 할 때는 비율을 다르게 하는게 좋당
clip() - astype()
=> 에러방지를 위한 설정 + 타입변경
그냥 더하면 밝은게 255가 넘어감 (밝기 가득한 영상)
[합칠 때는 비율이 중요함]
dtype : 데이터타입그대로
caleAdd 비율로 더 해줌
히스토그램 : 화소들의 값을 분류해서 카운팅 (밝기 판단 가능)
단일채널 -> 그레이스케일 영상
컬러영상 단일채널해도 됨
cv2.calcHist() : 계산함수 (빈도 계산)
cv2.normalize() : 정규화 함수
enumerate() : 인덱스, 실제 값 반환
flip() : 뒤집기
히스토그램 스트레칭 : 명암 분포를 고르게 (스트레핑 쭈우우욱, 고른 명암 분포)
=> 대비가 좋지 않은 영상 화질 개선
이퀄라이저 평활화 (간격을 동일, 분포를 균등하게)
=> 영상의 인지도 높, 화질 개선