일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- DART
- ML
- 영상처리
- BFS
- MATLAB
- PCA
- 백준
- 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습
- Kaggle
- llm을 활용 단어장 앱 개발일지
- pytorch
- rao
- ARM
- BOF
- FastAPI
- Flutter
- Dreamhack
- study book
- C++
- Computer Architecture
- Widget
- Stream
- MDP
- system hacking
- fastapi를 사용한 파이썬 웹 개발
- Image Processing
- Got
- bloc
- Algorithm
- BAEKJOON
- Today
- Total
Bull
[Image Processing] 컬러사진 흑백 만들기 (by MATLAB) 본문
[Image Processing] 컬러사진 흑백 만들기 (by MATLAB)
Bull_ 2024. 3. 19. 15:24오늘 수업시간에 배운 MATLAB으로 컬러사진을 흑백으로 만들기를 해볼 것이다.
사진: 변경 전 - 변경 후
설명
업로드
우선 작업공간의 디렉토리에 아무 사진을 올려준다.
imread("파일명")
>> img = imread("dog.jpg");
함수명을 보면 알 수 있듯이 이미지를 배열에 담아 변수로 저장한다.
"값" 필드를 보면 1000x750x3인 걸 알 수 있는데 여기서 3은 RGB 채널의 수이다.
그리고 RGB는 (0~255, 0~255, 0~255)로 표현할 수 있기 때문에 uint8(unsigned int 8bit)로 표현이 된다. (즉 양수 8bit)
따라서 영상(이미지)이 bit(pixel?)세계에서는 3차원으로 간주할 수 있는 것이다.
흑백 만들기
흑백을 만들기 위해 3채널 구조에 대해 이해할 필요가 있다.
우선, img(:, :, 1) img(:, :, 2) img(:, :, 3) 으로 (MATLAB은 index가 1부터 시작)
각각 R, G, B계열 값을 확인할 수 있다.
이제 어릴 때, 물감섞기 놀이를 상상해본다.
검은 색을 만들기 위해 삼원색을 모두 섞으면 검은색이 되는 것을 알 것이다.
유사한 방식을 생각하며 각 픽셀 원소의 성분을 모두 합해주는 것이다.
하지만 RGB는 255를 넘어가면 안되기 때문에 평균값을 내준다.
(여기서 빛의 삼원색의 합은 원래 하얀색이므로 흰색 RGB는 FFFFFF이다.
따라서 0에 가까울수록 검은색이 된다는 것을 비유때문에 착각하지 않아야 한다)
grayscale_img = mean(img,3)
소수점이 나오기 때문에 위처럼 초기화화면 이미지로 나타낼 수 없다.
grayscale_img = uint8(mean(img,3))
uint8()로 덮어준 후,
차원이 2차원 이미지로 되어있는 것을 확인할 수 있다.
imshow(grayscale_img)
Figure 1탭에 사진이 나타나는 것을 확인할 수 있다.
스크립트
gray_dog.m
img = imread("dog.jpg");
grayscale_img = uint8(mean(img,3));
imshow(grayscale_img)
'Computer Science > Image Processing' 카테고리의 다른 글
[Image Processing] Histogram Equalization (by MATLAB) (1) | 2024.03.23 |
---|---|
[Image Processing] Bit-Plane Slicing (8bit slicing) (by MATLAB) (0) | 2024.03.21 |
[Image Processing] Piecewise linear transformation(구간별 선형 변환) (by MATLAB) (0) | 2024.03.21 |
[Image Processing] 명도변환 (Power-Law Transformations)하기 (by MATLAB) (0) | 2024.03.19 |
[Image Processing] 반전사진 (Negative Image) 만들기 (by MATLAB) (0) | 2024.03.19 |