목록수학적 영상처리 (13)
맥에서 오픈소스로

import tkinter as tkfrom tkinter import filedialogfrom PIL import Image, ImageTkimport numpy as npimport matplotlib.pyplot as pltfrom matplotlib.backends.backend_tkagg import FigureCanvasTkAggclass PhaseJitteringApp: def __init__(self, root): self.root = root self.root.title("Phase Jittering Image Augmentation") # 메인 프레임 생성 self.main_frame = tk.Frame(self.r..

인생 첫 파이썬 패키지를 업로드해 보았습니다.이름은 OpenFV주파수 도메인에서 영상처리를 하는 함수들의 모음 입니다.OpenCV에는 없는 특수한 영상처리 함수들만 6개 정도 들어있습니다.계속 업데이트 합니다... OpenFV PyPI 주소: https://pypi.org/project/openfv/- 업데이트 이력, 개발자 연락처, 사용법 등의 예제코드가 있습니다. 유투브 데모 영상 사이트 : https://www.youtube.com/@sheekjegal/videos- 동영상 데모앱에 대한 소스코드 제공합니다. 설치법:- pip3 install openfv 사용법:import openfv as fvimport cv2 image= cv2.imread('file_name.png')sepctrum = fv..

using System;using System.Windows.Forms;using System.Drawing;using Emgu.CV;using Emgu.CV.Structure;using Emgu.CV.CvEnum;using Emgu.CV.Util;namespace WinFormsApp2{ public partial class Form1 : Form { private PictureBox originalImageBox; private PictureBox processedImageBox; private Button loadButton; public Form1() { InitializeComponent(); ..

import cv2import numpy as npimport tkinter as tkfrom tkinter import ttkfrom tkinter import filedialogfrom PIL import Image, ImageTkclass HSVColorFinder: def __init__(self, root): self.root = root self.root.title("HSV Color Finder") # 변수 초기화 self.image = None self.photo = None self.current_image = None self.value_labels = {} # 슬라이더 값 표시..
마우스를 움직여 최적의 파라미터를 고르는 모습 - Gabor Filter 나 Probabilistic Hough Transform 처럼 파라미터가 많은 OpenCV내 영상처리 함수들은 내가 입력한 이미지에 딱맞는 최적화된 파라미터를 선택하기가 매우 어렵죠.- 그럴때는 저렇게 마우스를 이리저리 움직여가며 직선 검출을 해보고 가장 직선검출이 잘되는 마우스 위치가 만들어낸 두개의 파라미터를 선택하여 필터링 코드에 박아넣으면 다음부턴 내 이미지와 비슷한 이미지들은 죄다 직선 검출을 잘하게 되는 원리입니다.- 이런것도 일종의 비주얼 프롬프트(요즘 초거대AI 분야에서 유행하는 용어지요) 중 하나가 아닐까 생각 됩니다만 ..- 여러분들 생각은 어뜨신지요?

- 퀴즈입니다. 세어 보세요.- 쉬워보이지만 의외로 방향이 제각각 이라 카운트가 무척 어렵습니다. ...- 특히나 아이폰 같은것으로 보면 그 위에 숫자를 적으면서 카운트 할수도 없어서 더 어렵죠. - 이제 이 문제를 몇가지 수학적 영상처리 기술로 풀어보겠습니다... - 직선검출에 가장 많이 사용하는 허프(Hough)변환으로 직선들을 검출해 보니, 우상단의 짧은 직선 2개를 인식 못하는군요 ..길이가 짧아서 피크가 희미하고 따라서 검출을 못해내는거 같습니다. - 이건 Radon변환 결과 입니다. 라돈변환은 허프변환과 비슷하지만 회전투영을 이용하고, 이진화같은 전처리가 필요없는 차이가 있습니다.라돈변환으로도 역시나 12개정보 밖에 검출하지 못하네요 ... - 이건 2차원 푸리에 변환의 결과인 진폭 스펙트럼..

- 지난번에 올린 New 이진화 기술에 이어 이번엔 Data-Driven으로 에지 필터를 학습시켜 보았습니다.- 3x3 콘볼루션 필터의 커널 가중치를 랜덤하게 발생시킨 후 가중치를 SGD 로 조금씩 바꿔가면서 필터링한 결과와 입력된 이미지의 소벨필터 결과(Ground Truth)를 비교하여 로쓰값을 만들어 로쓰가 줄어드는 방향으로 가중치를 갱신하였습니다.- 그렇게 epoch =5000 정도로 학습시켰더니.. - 학습에 사용된 이미지는 70장 정도 였구요. Loss 계산용 이미지 비교함수는 POC(위상한정 상관)함수를 사용했지요.- 그 외에도 커널의 가중치합이 0이 되도록 abs(sum(weights)) 로쓰도 추가했습니다.loss = alpha * loss_poc + (1-alpha) * loss_z..

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

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