분류 전체보기 (64) 썸네일형 리스트형 Unity :: 스크립트로 머티리얼(Material) 변경하는법 버튼을 눌렀을때 cube의 Material을 변경하려 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ChangeMat : MonoBehaviour { public Material[] mat = new Material[2]; int i = 0; public void ChangeCubeMat() { i = ++i % 2; // Change Material gameObject.GetComponent().material = mat[i]; } } Colored by Color Scripter cs cube.. 영상의 톤 커브(tone curve)와 히스토그램 평탄화(histogram equalization) Tone Curve 입력 영상의 각각의 화소 값에 대해서 출력 화소 값이 어떻게 대응할지를 정의하는 함수를 gradation transformation function이라고 하는데 이 함수를 그래프로 표현한 것을 톤 커브(tone curve)라고 합니다. 톤 커브를 활용하면 영상의 contrast를 높이거나 낮추거나 여러가지 상황에 맞게 영상의 밝기를 조절할 수 있습니다. 아래의 그림은 tone curve를 사용한 예시입니다. 두번째 그림은 화소 값이 중앙에 몰려 contrast가 낮은 영상에 S자 톤 커브를 사용하여 contrast를 높인 예시입니다. Histogram equalization 영상의 contrast를 높이기 위해서 위처럼 톤 커브를 사용할 수도 있지만, 변환을 하기에 앞서 어느 쪽에 화.. Flicker effect 플리커 현상이란 영상, video는 여러 장의 이미지를 연속적으로 보여주는 것과 같다. 이때 초당 표시되는 영상(image) 매수를 프레임 레이트(frame rate)라고 부르고 단위로는 fps(frame per second)를 사용하는 경우가 많다. 60fps의 경우 1초당 60개의 영상이 출력된다는 의미이다. 셔터를 연속적으로 열고 닫아 차례로 영상을 촬영하고 셔터 속도는 frame rate의 주기보다 길게 할 수 없다. 예를 들어 60fps의 경우 셔터 속도는 1/60초 보다 길수 없다. 1/60 초 보다 짧다면 frame rate 주기에 맞춰 셔터를 열고 닫으면 된다. 형광등이나 LED, 방전등은 100Hz 또는 120Hz로 명멸하고 있다. 때문에 셔터를 이용한 연속 촬영시 프레임마다 밝기가 다른 현상이 생긴다... Vignetting 비네팅이란 비네팅은 영상 주변부의 광량이 영상 중심에 비해 저하되면서 영상의 중심에서 멀어질수록 어두워지는 현상을 말한다. 비네팅이 발생하는 원인은 크게 2가지가 있다. 첫 번째로는 optical vignetting(광학 비네팅)이 있다. 모든 카메라 렌즈에서는 obtical vignetting 현상이 발생한다. optical vignetting이란 카메라의 렌즈의 크기나 두께, 렌즈계의 틀 등에 의해서 광선이 차단되어 입사 광량이 저하되는 현상이다. 이 현상은 조리개 값(F-number)을 키움으로써 경감시킬 수 있다. 두 번째로는 cosine fourth law of illumination 이 있다. 코사인4승법칙이라 말하고 이는 광축을 기준으로 입사각 $\theta$에 대해서 투영면 상의 조도가 $cos^4\.. 영상처리를 위한 디지털카메라의 기초 지식(구조 및 파라미터) 사진 찍는걸 좋아하고 디지털 카메라를 구비하고 있는 사람들은 이미 알고 있는 내용일수도 있다. 카메라의 구조는 크게 렌즈 -> 조리개 -> 셔터 -> 이미지센서 가 있다. 그 외에도 몇가지가 더 있지만 영상과 관련된 부분만 놓고 보자면 위의 4개가 있겠다. 렌즈 렌즈는 대상으로부터 반사되는 빛을 한 곳으로 모으는 역할을 한다. 카메라의 렌즈는 볼록렌즈를 사용하고 그 특성으로 렌즈를 통과한 광선들은 한 점으로 모이게 된다. 피사체에서 반사된 광선의 방향은 제각각일 것이다. 각각 다른 방향의 광선들 중에서 카메라의 렌즈를 향하는 광선들은 렌즈를 통과하여 카메라 내부의 어떠한 지점에 모이게 되고 상을 맺게 된다. 여기서 렌즈를 통과한 광선들이 한점에 모이는 곳이 바로 초점거리(f)가 된다. 렌즈의 지름이 커질.. Mac Anaconda OpenGL Import Error 해결법 ImportError: ('Unable to load OpenGL library', "dlopen(OpenGL, 0x000A): tried: '/Users/kisub/opt/anaconda3/envs/cg-course/lib/OpenGL' (no such file), '/Users/kisub/opt/anaconda3/envs/cg-course/lib/OpenGL' (no such file), '/Users/kisub/opt/anaconda3/envs/cg-course/lib/python3.7/lib-dynload/../../OpenGL' (no such file), '/Users/kisub/opt/anaconda3/envs/cg- ... 아나콘다 가상환경에서 OpenGL을 설치하고 코드를 실행하려 했는데.. Silicon Mac(M1)에서 OpenCV C++ 개발환경 설정 정리 (Xcode) home brew(https://brew.sh/)와 Git이 설치되어 있다는 가정하에 진행합니다. '::' 뒤는 터미널 명령어 뒤에 [숫자]가 붙은 폴더는 경로를 기억해주세요. 폴더명을 [숫자]로 간략하게 표현하겠습니다. cmake 설치 :: brew install cmake OpenCV 라이브러리 설치 설치할 폴더 생성[1] (원하는 곳에 생성 - 저의 경우 ~/opt/open_cv 이름으로 생성했습니다.) :: git clone https://github.com/opencv/opencv.git (reference: https://github.com/opencv/opencv) [1]에 build 폴더[2] 생성 (그럼 [1]에 opencv, build 이름의 두개의 폴더가 생성되어 있을겁니다.) [2].. Unity :: 스크립트에서 태그(tag) 추가하는법 gameObject: 추가할 대상 태그를 추가하는 방법은 생각보다 간단했다. 1. Inspector창 2. Add Tag 3. 'Tags'에서 '+' 버튼을 눌러 원하는 태그 추가 gameObject.tag = "NewTag"; 이전 1 2 3 4 5 6 ··· 8 다음