티스토리 뷰
1. 개요 |
페이스북을 보다가 0과 1로 2를 만드는 법이라는 글을 보게 되었고, 그림을 글자로 재 표현하는 프로그램을 만들어 보자는 생각으로 시작하게 되었습니다.
2. Prototype |
소스코드 구현의 시작은 픽셀의 밝기를 여러 단계로 나누어 단계에 따른 해당 글자로 변경하는 방식으로 진행할려고 했습니다.
밝기에 따라 변경될 단어들은 아래 단어들로 선정하였습니다.
처음에는 Red, Green, Blue 3개의 값의 총 합으로 밝기를 구분을 하였고, 두번째는 3가지 요소 중 가장 작은 요소로 단계를 구분지어 출력물을 만들어 보았습니다.
왼쪽 출력물은 Sum으로, 오른쪽은 최소값을 기준으로 삼아 픽셀을 글자로 변경해 보았습니다.
결과는 둘다 좋았습니다.
소스코드는 다음과 같습니다.
3. 휘도(luminance) |
위 두방식은 정확한 밝기로 구분하는 것이 아니라 대락적인 눈 짐작으로 구별한 것이라 몇몇 사진에서는 위와 같은 뚜련한 결과를 뽑아 내지 못하였습니다. 그래서 진짜 밝기를 이용해서 구현해 보자라고 생각을 하고 검색을 해보니 RGB값을 가지고 휘도를 구하는 공식이 있었습니다.
brightness = sqrt( .299 R2 + .587 G2 + .114 B2 )
위 공식 출처는 http://alienryderflex.com/hsp.html입니다.
추가적으로 밝기의 구분을 고정적으로 하는 것이 아니라 사진의 전체적인 밝기를 가지고 최대, 최소 밝기와 밝기가 몰려있는 정도를 가지고 자동으로 범위를 정해주는 식으로 변경하였습니다.
'SoftWare > JAVA' 카테고리의 다른 글
JAVA - MQTT Client 구현하기, 토픽간 연결하기 (5) | 2016.11.10 |
---|---|
JAVA 파일 입출력(3) - BufferedReader & BufferedWriter (0) | 2016.05.07 |
JAVA 파일 입출력(2) - FileReader & FileWriter (1) | 2016.05.06 |
JAVA 파일 입출력(1) - 생성, 삭제, 속성보기 (0) | 2016.05.06 |
Java 입출력 - Scanner (0) | 2016.05.06 |
- Total
- Today
- Yesterday
- java 파일 입출력
- android
- php
- Notification
- java url
- counter
- Res
- java
- 서버
- 포켓몬 Go
- LISTVIEW
- 포켓몬 고
- 안드로이드
- Service
- 인텐트
- c언어
- 파일 입출력
- 카운터
- 아두이노
- 파일입출력
- Java Decompiler
- vim
- vim 설치
- 알고리즘
- 테라펀딩 #투게더펀딩 #P2P투자 #부동산 소액 투자 #카카오 #토스
- 자바 입출력
- 유전 알고리즘
- jad
- 5582
- 유전
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |