본문 바로가기

Computer

(119)
[iOS - Swift] extension(확장) 에 대해 Swift에서 extension은 굉장히 많이 쓰인다. 어느 순간 나도 extension을 꽤나 많이 사용하고 있었다. 오늘은 효율적으로 개발을 할 수 있고, Swift에서 많이 활용되는 기능 중 하나인 '확장' 에 대해 알아보려고 한다. 확장 extension 이란? 기존의 클래스, 구조체, 열거형, 프로토콜 등에 새로운 기능을 추가하는 방법이다. 확장은 기존 타입의 정의를 수정하는 것이 아니라 확장된 기능을 제공한다. 즉, 기존 코드를 건드리지 않고 새로운 기능을 추가할 수 있는 아주 강력한 기능이다. 이러한 강력한 기능 확장을 통해 코드를 모듈화하고 확장성을 높이는 것이 가능하기 때문에 개발을 할 때 굉장히 효율적이다. extension이라는 키워드를 사용한다. 확장 extension 의 기능 메서..
컴퓨터 비전 영상처리 - 이진 모폴로지, 명암 모폴로지 (팽창, 침식, 열기, 닫기) 영상처리에서 모폴로지란 ? 영상의 형태와 구조를 분석하고 처리하는 기술로서, 영상 내의 객체나 특정한 패턴을 찾고 수정하는 데 사용된다. 주로 이진화된 영상에서 객체의 형태, 크기, 경계 등을 분석하거나 영상의 노이즈를 제거하는 데에 많이 활용된다. 모폴로지 구조적 요소라고 불리는 작은 마스크를 사용하여 수행된다. 원래 생물학에서 생물의 모양 변화를 표현하는 기법이였다. 수학적 모폴로지는 컴퓨터 비전에서 패턴을 원하는 형태로 변환하는 기법이다. 이진 모폴로지와 명암 모폴로지가 있다. 이진 모폴로지 이진 모폴로지 연산에는 4가지가 있다. 팽창, 침식, 열기, 닫기 가 있다. 이진 모폴로지에서의 팽창, 침식, 열기, 닫기 연산 팽창은 객체의 크기가 감소하며 배경은 확대된다. 침식은 객체의 크기는 확대되고 배..
[git 사용법] - github 가입, repository 생성, token 발급 Github 세팅 https://github.com/ 에 들어가서 회원가입을 먼저 한다. (메일 인증까지 해야한다) 왼쪽 프로필 밑에 New를 클릭하여 Repository를 생성한다. Repository name은 본인이 마음대로 설정하고, Public(공개) / Private(비공개)를 설정한 후 Create repository를 클릭한다. Add a README file은 나중에 설정할 수 있다. ✔️ git pull 원격 저장소에 업데이트 된 데이터를 가져오고 병합할 때 사용 $ git pull origin main pull 은 원격 저장소에 업데이트 되어있는 데이터를 받아오고 병합할 때 사용한다. ✔️ git add, commit, push $ git status $ git add . $ git ..
컴퓨터 비전 영상처리 - 점연산, 영역연산, 기하연산 (디졸브, 컨볼루션, 메디안 필터, 가우시안, 감마 수정) 영상처리에는 가장 기본적이면서도 핵심적인 세 가지 연산 유형이 있다. 점 연산, 영역 연산, 기하 연산이 있는데, 이 세 가지 연산 유형을 조합하여 다양한 영상 처리 기술과 알고리즘을 만든다. 점 연산 점 연산 특징 점 연산은 오직 자신의 명암값에 따라 새로운 값을 결정한다. 주로 히스토그램 평활화, 밝기 조절, 대비 조절 등의 작업을 한다. 특정 함수나 수식을 사용하여 각 픽셀의 값을 변경함으로써 이미지의 품질을 개선하거나 특정 효과를 적용하는데 사용된다. 점 연산 식 선형 연산 비선형 연산 감마 수정 : 모니터나 프린터 색상 조절에 사용한다. 디졸브 영역 연산 영역 연산의 특징 이웃 화소의 명암값에 따라 새로운 값을 결정한다. 필터링, 엣지 검출, 잡음 제거 등의 작업을 한다. 영역 내 픽셀들의 값이..
iOS - Delegate Pattern (델리게이트 패턴) 간단한 앱을 만드는 공부를 하던 중에 "델리게이트 패턴"이 지속적으로 언급되며 사용하길래 자세히 짚고 넘어가고 싶어 글을 쓰게 되었다. Delegate Pattern 델리게이트 패턴은 iOS에서 사용되는 여러 디자인 패턴 중 하나이다. 객체들 사이의 상호작용을 구현하는 방법이다. delegate는 사전적 의미로 '대리자', '위임자' 라는 의미를 가지고 있다. 델리게이트 패턴을 사용하면 하나의 객체가 다른 객체에게 자신의 일부 기능을 대신 처리하도록 위임(delegate)할 수 있다. 쉽게 말해, A가 B에게 특정 이벤트가 발생하면 해당 이벤트를 처리하는 책임을 B에게 위임하는 것을 의미한다. Delegate Pattern 예시 이해가 잘 되지 않는다면 실생활로 예를 들어보면 된다. 소프트웨어학과는 MT..
컴퓨터 비전 영상처리 - 연결요소 (화소의 모양과 연결성, 범람채움) Python 실습 코드 화소처리란? 화소처리는 입력 영상의 화소값이 수학적인 함수를 거쳐서 새로운 값으로 변경된 후에 출력 영상의 동일한 위치에 저장하는 것을 말한다. 화소의 모양과 연결성 화소의 모양 화소의 연결 4-연결성과 8-연결성 메모리를 적게 사용하는 범람 채움 코드 b를 l로 복사한다. 이때 0은 0, 1은 -1로 복사 //-1은 아직 번호를 안 붙였음을 표시함 l의 경계. 즉 j = 0, j = M-1, i = 0, i = N-1인 화소를 0으로 설정 //영상 바깥으로 나가는 걸 방지하기 위함 label = 1; for(j = 1 to M-2) for(i = 1 to N-2) { if(l(j, i) = -1) { efficient_floodfill4(l, j, i, label); label++; } } //메모리를..

728x90