- 110

[OpenCV] 2D FFT (Fast Fourier Transform)

FFT 적용 Fourier Transform을 적용 적용을 하면 (0,0), 화면 좌상단이 중심이고 거기에 저주파가 모여있음 분석을 용이하게 하기 위해 (0,0)을 이미지의 중심으로 이동시키고 Log Scaling을 하여 분석이 용이한 결과값으로 변환 푸리에 변환 : 영상을 시간 도메인에서 주파수 도메인으로 변환 영상처리에서는 2차원 푸리에 변환을 사용한다. 임의의 입력 신호를 다양한 주파수를 갖는 주기함수들의 합으로 분해하여 표현하는것 (입력 신호를 sin, cos의 주기성분으로 분해하는 것) 각각의 주기함수 성분들은 고유의 주파수와 강도를 가지고 있으며 이들을 모두 합치면 원래의 신호가 된다. FFT 적용 결과를 log scale 푸리에 스펙트럼은 푸리에 변환을 통해 얻은 각 주파수 성분이 원 신호(..

[OpenCV] spatial-domain filter

low contrast 낮은 대조비 개선을 위해 히스토그램 평활화를 해줌. 구한 히스토그램 / 누적 히스토그램 / 평활화된 히스토그램 여러가지 시도를 해보았다. (감마는 0.7로 줌) 히스토그램 평활화 / 감마보정 히스토그램 평활화 후 감마보정 / 감마보정 후 히스토그램 평활화 가져온 이미지가 조금 어둡고 블러링된 이미지이기 때문에, 이미지를 밝게 해주기 위해서 감마보정을 하고 샤프닝 필터를 적용했다. Gaussian noisy image 가우시안 노이즈가 들어간 이미지에 가우시안 필터를 적용했다. 가우시안 노이즈는 자연적으로 랜덤하게 발생하는 노이즈이다. 추가로 메디안 필터도 적용해보았다. 가우시안 필터는 현재 픽셀값과 주변 이웃 픽셀값들의 가중 평균을 이용해서 현재 픽셀의 값을 대체한다. 둘 다 블러..

[OpenCV] 공간 영역에서의 영상 개선

Negative transformation Image negatives s = T(r) = L-1-r (where 0 ≤ r ≤ L-1) 1) 기존에 존재하는 API를 이용해서 구현한 코드 2) 이미지 색상 반전을 위해서, 255 - 현재 픽셀값을 해주었다. 픽셀 값들에 255를 빼주면 0에 가까웠던 어두운 픽셀값은 밝아지고 255에 가까웠던 밝은 픽셀값은 어두워진다. 기존의 API를 이용한 코드와 같은 결과값이 나왔다. Log, inverse-log transformation c = 1 일 때, c = 2 일 때, Log transform은 어두운 부분을 스트레칭 시켜준다. 그래서 어두운 영역에 뭐가 있는지 보고 싶을 때는 이미지를 log transform을 시켜주면 된다. 반대로 Inverse log..

[Kotlin] RecyclerView, 리스트 리소스 관리

이런 유튜브처럼, 스크롤을 내려보면 리스트가 계속 나오는 어플을 먼저 구현하라고 하셨다 리소스 관리하면서 하라고 하셔서 리소스 재사용을 할 수 있는 RecyclerView로 구현하게 되었다 RecycelrView는 이렇게 리스트가 새로 생길 때마다 추가로 view를 만드는 것이 아니라 이전에 만들어뒀던, 지금은 사용자에게 보이지 않는 뷰를 가져와서 재사용한다 1. import recyclerview // RecyclerView implementation "androidx.recyclerview:recyclerview:$version_recyclerview" // For control over item selection of both touch and mouse driven selection impleme..

Web | App/Android 2021.05.16

[Git] 기본 명령어들 (commit/push)

레파지토리 가져오기 git clone [URL] 해당 레포명으로 폴더가 만들어지고 안에 내용물 etc 현재 상태 체크하기 - staged 확인 git status - commit 확인 git log Branch - 로컬 & 원격 브랜치 보기 git branch -a - 브랜치 변경 git checkout [BRANCH] - 브랜치 생성 git branch [NEW BRANCH] - 브랜치 삭제 git branch -d [BRANCH] 수정한 파일 추가 / 저장 / 업로드 - 파일 추가하기 (반영) git add [FILE] git add . //[.]을 넣으면 지금 위치한 폴더 내용 전체 반영 - 파일 add 취소하기 git reset HEAD [FILE]//파일을 안적으면 전체 취소 - commit 하..

Programming/Git 2021.05.16

Android Emulator for AMD Processors failed 해결하기

Android Emulator Hypervisor Driver for AMD Processors installation failed. To install Android Emulator Hypervisor Driver for AMD Processors 라고 뜨면서 암드용 애뮬레이터 설치가 안되길래 작업관리자에서 가상화를 확인해보니까 꺼져있었다 ... # AMD 가상화 활성화하기 컴퓨터를 다시 시작하고 F2 버튼을 눌러서 BIOS에 접속 (시작할 때 F2 누르면 들어갈 수 있다고 뜬다) Advanced Mode > Advanced > SVM Mode : Enabled 로 가상화를 켜준다 저장 # 암드용 애뮬레이터 다운로드 Tools > SDK manager에서 install을 한다 바로 된다

Web | App/Android 2021.05.15

[Kotlin] 프로젝트에 모듈 추가하기

새로운 프로젝트에 다른 프로젝트를 어떻게 추가하나, 이미 빌드한 프로젝트를 어떻게 import 하는지 이렇게 먼저 File > New > Import 프로젝트 해주기 빌드된 aar 파일이 들어가고 넣으려는 모듈: player (.aar 파일) 현재 프로젝트: SampleTV 현재 프로젝트에 추가된 모듈들이 표시된다 dependency에도 추가 import com.sample.test.Function; 그러면 이제 해당 파일에 있는 함수를 가져와 사용할 수 있다 - Reference Android 라이브러리 만들기: https://developer.android.com/studio/projects/android-library?hl=ko

Web | App/Android 2021.05.15

인증서 서버 구현해보기) +가상머신에 연결이 잘 안될 때

네트워크가 바뀌면서 설정들이 꼬일 수 있기 때문에 잘 안되면 네트워크 체크를 해본다 1. Restore Defaults VMware에서 Edit의 Virtual Network Editor에 들어가서 Restore Defaults로 설정을 날렸다가 다시 설정해본다 2. Enable / Disable 네트워크 연결을 사용 안 함으로 했다가 사용함으로 바꿔줘본다 (이전에 이미 받아왔던 주소들이 들어있어서 연결이 안되는 걸 수도 있기 때문에 한 번 날려준다) 3. 가상머신이 안 켜질 때 'This virtual machine appears to be in use' 이미 사용 중이라며 가상머신이 안 켜지면 해당 가상머신이 만들어져있는 폴더로 가서 .lck 라고 되어있는 폴더들을 다 삭제해주고 실행시키면 된다 + ..

Web | App/Server 2021.05.08

인증서 서버 구현해보기) 4. 인증서를 사용해 접근하기

pfSense에서 System > Admin Access 클릭 발급 받은 인증서(CA Test)로 연결되도록 설정을 바꾼다 그러면 발급받은 인증서로 연결이 되는데 아직까지 X표시가 되어있다 '신뢰된 인증 기관에서' 검증할 수 없기 때문인데 이걸 유효하게 해주려면 본인 컴퓨터(pfSense 접근하는 컴퓨터)에 인증서를 넣어줘야함 실행에서 certmgr.msc 실행 이 안에 인증서가 들어가 있어야 검증을 할 수 있다 그래서 동작 > 모든 작업 > 가져오기 다운받은 루트 인증서 가져오기 (DER 형식*) 그러면 이렇게 변경됨 인증서를 클릭해보면 변경되어 있지만 아직 주의 요함이라고 표시가 되어있다 도메인으로 인증서를 발급받았기 때문인데 우리가 적은 도메인은 발급받은 도메인이 아니기 때문에 연결을 위해서 따로 ..

Web | App/Server 2021.05.08

인증서 서버 구현해보기) 3. 인증서 발급 받기

Certificate 매니저에서 CA서버로 가서 인증서를 발급해달라고 요청을 할 거다 (pfSense가 CA서버한테) 그전에 먼저 CA서버의 루트 인증서를 받아서 설치해야한다 # 루트 인증서 다운 http://192.168.111.100/certsrv/ CA서버에 정상적으로 설치가 됐으면 CA서버에 이런 url이 있다 (certsrv) 여기에 인증서를 요청하는거다 ( !http 다! ) Download a CA certificate로 들어가서 Base64로 Download CA certificate를 클릭해서 루트 인증서를 다운받아준다 (pfSense는 DER인코딩을 못함, base64만 지원함) # Root 인증서 등록 pfSense에서 Certificate Manager에서 Add를 눌러준다 이름과 ..

Web | App/Server 2021.05.08