수학적 영상처리 5

[magick] 폴더속 이미지들 중 truncated 이미지만 찾아내는 imagemagick 명령어

$ magick identify -format '%f: %C\n' * | grep -i truncated- 현재폴더 내의 수천~수만개의 이미지들 중에 truncated 된 이미지가 있는지 찾는 imagemagick 명령어 입니다. - truncated image(깨진 이미지)란 이 그림처럼 이미지 일부가 미센싱 등의 이유로 미완성된 이미지를 말하는데 ..회색부분은 검정색으로 나타나는게 더 일반적입니다.- 이렇게 이미지 뷰어로 보이면 그나마 다행인데 아예 미리보기등의 뷰어로 안보이는 이미지 파일들도 존재하죠.- 수만 수백만장의 이미지 데이타셋으로 딥러닝을 학습하다가   truncated image 오류가 발생하면 아주 난감한데.. 그 이유는 대부분 딥러닝 학습코드의 data_loader 에는 파일명 정보를..

torchaudio를 사용해 text로 오디오를 만든후 spectrogram을 그리기

- "헬로, 월드" 라는 발음의 오디오 파형과 스펙트로그램은 처음 보시죠?- 오디오도 들어볼수 있습니다. 실제로 성우가 남자냐, 여자내에 따라 그리고 화자가 누구냐에 따라 오디오 파형과 스펙트로그램은 달르게 만들어질 것입니다~- 이 코드는 텍스트를 음성으로 변환하는 GUI 애플리케이션을 구현하고 있습니다. 주요 특징은 다음과 같습니다:Tkinter를 사용하여 GUI를 구성합니다.토치오디오 패키지의 Tacotron2와 WaveRNN 모델을 사용하여 텍스트를 음성으로 변환합니다.(딥러닝 추론)Matplotlib을 사용하여 생성된 오디오의 스펙트로그램과 파형을 시각화합니다.Pygame을 사용하여 생성된 오디오를 재생합니다.- 이 애플리케이션은 사용자가 텍스트를 입력하고 "Generate" 버튼을 클릭하면 해당..

[파이썬] Notch Filtering 으로 모아레 패턴 제거하기

- 노치 필터는 대역필터(Band Pass Filter) 중에서 스펙트럼 대역폭이 매우 좁은 특수한 필터를 말합니다.- 1차원 신호에서와 마찬가지로 이미지와 같은 2차원 신호에서도 마찬가지로 노치필터링은 가능한데요..- 그림과 같이 수직이나 수평방향 줄무늬 노이즈(아마도 저주파 교류전원에 의한 간섭? 형광등 주파수와의 교란??) 를 제거하는데 종종 쓰입니다. 당근, 경사진 방향의 줄무늬 필터링도 가능하구요.- 처리 절차는 대충 이러합니다:  왜곡된 이미지 입력> 2차원 푸리에변환 > 진폭 스펙트럼 > 줄무늬에 해당하는 공간주파수 제거 > 푸리;에 역변환 > 필터링된 이미지.import cv2import numpy as npimport tkinter as tkfrom PIL import Image, Ima..

[파이썬] 2차원 푸리에변환을 12bit 버전으로 구현해보았습니다.

- 제조업이나 산업쪽에서는 종종 8비트 대신 12비트로 이미지를 센싱하는 경우가 있죠. 화소의 계조를 높여서 이미지의 데이타 분해능을 높이고 더 정밀한 측정이나 계조값 기반 리그레션 등을 하기위함 인데요..- 그렇게 만들어진 12비트 이미지는 8비트 체계로 작동하는 일반 글카나 모니터로는 볼수도없고 일반 S/W로는 영상처리도 불가능합니다.- 이미지 디스플레이에서부터 히스토그램, 이진화, 콘트라스트 변조나 에지 검출 등등의 계조값을 다루는 거의 모든 영상처리 루틴을 새로 개발해야 하죠.- 그래서 보통은 12비트를 8비트 이미지로 컨버팅한후 표시하거나 8비트 영상처리를 하거나하여 딥러닝에 입력하는 등의 만행을 저지르죠. 쉬운방법이긴한데, 그러면 애초에 애써 12비트로 센싱한 의미가 사라지죠.- png 이미지..

[파이썬] Rotate-invariant realtime template matching using SAM model

- 메타의 SAM(세그먼트 애니띵) 모델로 실시간에 이미지내 물체의 템플릿을 만든후 만들어진 템플릿으로 이미지내에서 비슷한 물체를 매칭(OpenCV로 수학적으로)하는 방식입니다.- 실시간 템플릿은 이미지에서 마우스 포인터로 찾고자하는 물체내부를 클릭하면(Visual Prompt ) SAM 모델로 물체의 윤곽선을 세그먼테이션하며 그 윤곽선으로 Best-fit된 bbox를 수학적으로 만들고 그 내부 이미지를 템플릿으로 저장합니다.- 그리고 저장된 템플릿으로 템플릿 매칭을 하는데 회전왜곡에 불변하도록 매칭하는 알고리즘으로 회전된 물체도 같은 모양이면 찾아주게 됩니다.- 단,  90도 배수에 해당하는 각도로 회전된 물체는 매칭율이 잘 않나오는 문제가 있습니다. 나머지 모든각도에 대해선 잘 찾아줍니다.import..