본문 바로가기

All145

컴퓨터 비전 스터디 5주차 : 21.04.25 5. 다해상도 업샘플링upsampling : 해상도를 늘리는 영상 처리 연산 다운샘플링downampling : 해상도를 줄이는 영상 처리 연산 다양하게 변화된 상황(EX. 어떤 영상에서는 사람이 영상 전체에 나타나고, 다른 영상에서는 아주 작게 나타남)에 상관없이 물체를 안정적으로 찾아내고 인식하는 것은 컴퓨터 비전의 궁극적인 목표 중 하나이다. 위의 이미지는 이러한 요구에 따라 고안된 기법인 영상 피라미드image pyramid이다. 피라미드는 해상도가 다른 여러장의 영상으로 구성된다. (f0 ~ f3) 이를 다중 해상도multi-resolution 영상이라고 부른다. 이 구조는 *거침과 세밀함 처리 방식에서 강점을 제공한다. *거침과 세밀함coarse-to-fine 처리 방식 : 저 해상도의 거친 영.. 2021. 5. 2.
Reactive Programing이란? * 이 글은 전적으로 개인적으로 공부하면서 중얼거리는 글입니다... 틀린 내용이 많을 수도 있습니다.. 리액티브 프로그래밍....맨날 들을 때마다 머리가 아프다... 왜냐면 아직도 난 이것에 대해 감을 못잡았기 때문이다... 비동기적인 데이터를 처리할 때 유용하다는 건...잘..알겠다... 코딩하면서 쓰다보면 대충 그런거 같더라... 대충 그런거 같다로 넘기는 것들이 한 열댓개가 넘어가자 이해도가 미쳐돌아가기 시작했다.. 살려줘.... 심지어 RxJava, RxKotlin 같은 식으로 쓰는데 나는 Reactive Programing == Rx라고 생각했건만 그것도 아니라는데, 미쳐돌아가는 대 환장 이해도속에 공부를 시작해보도록 ... 하자.. 자칫하다간 아무도 이해못하는 웅앵웅이 될 수 있으니 아주 처음.. 2021. 4. 28.
프로세스와 스레드 프로세스는 실행중인 프로그램을 의미한다. (메모리에 올라와서 실행되고 있는 프로그램의 인스턴스) 프로세스는 코드, 데이터, 힙, 스택 별로 각각의 주소공간에 독립적으로 할당받는다. 반면 스레드는 스택만 따로 할당 받고 나머지는 서로 공유한다. 프로세스는 자신만의 고유 공간과 자원을 할당받아 사용하는 데에 비해 스레드는 다른 스레드와 공간, 자원을 공유하면서 사용한다. 스레드는 프로세스의 실행되는 여러 흐름의 단위를 의미한다. 프로세스마다 메인 스레드를 포함하여 최소 1개의 스레드를 소유한다. 멀티프로세스의 장점은 안전성이지만, 각각의 메모리 공간을 갖고 있어 작업량이 많을 수록 오버헤드가 발생한다. 반면 멀티 스레드는 독립적인 프로세스에 비해 공유 메모리를 사용하여 시간, 자원 손실이 적다는 장점이 있지.. 2021. 4. 25.
navigateUp(), popBackStack() 차이 navigateUp()과 popBackStack()은 무슨 차이가 있을까? 먼저 둘의 차이를 알아보기 이전에 Navigation에 대해 간단히 살펴보자. Navigation이란? 네비게이션은 사용자가 앱 내의 여러 콘텐츠를 탐색하고, 다시 나올 수 있도록 하는 상호 작용을 의미한다. Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app. 간단히 말해 Acitivty-Fragment 간의 Transcation을 쉽게 구현하기 위한 Jetpack의 Component이다. 또한 네비게이션은 아래와 같은 .. 2021. 4. 18.
웹 토이 프로젝트 후기 회고라고 적으려다가 뭔가 거창해보여서 후기로 고쳤다. 왜냐면 나는 그냥 소감문을 남기고 싶을 뿐이라서.. 스케치에 남아있는 기획서도 나중에 정리해서 올려볼까 싶다. 프로토타이핑까지는 안 썼지만 (..) 만들면서 역시 기획은 직업으로 (내가) 못 해먹겠다. 역시 기획은 디자인 감각도 있는 더 짱 똑똑한 사람들이 하는 거디 이 플젝 이후에 나는 자바 스크립트랑 1도 안 맞는다는 엄청난 결론을 얻었다. 이상하게 프로젝트 코드는 수정할 수 있는데 아무 것도 머리에 남은 것이 없다 ㅋㅋㅋㅋㅋㅋㅋ 내 기준 작성하면서도 문법을 알 수 없는 언어 TOP 1 정도에 올라갔다고 보면 된다... 웹 개발 자체는 생각보다 재밌었는데, 이상하게 언어랑 안 맞고 / 공부하고 싶지도 않고..ㅋ 사실 기획/디자인 단계가 제일.. 스.. 2021. 4. 17.
컴퓨터 비전 스터디 4주차 : 21.04.11 4. 영상 처리의 세 가지 기본 연산 영상 처리는, 화소 입장에서 새로운 값을 부여받는 것을 뜻한다. 새로운 값을 '어디서 취하느냐'에 따라 연산을 세 가지로 구분 할 수 있다. 점 연산Point Operation 어떤 화소가 자신의 값만 보고 새로운 값을 결정하는 경우 영역 연산Area Operation 이웃에 있는 몇 개의 화소들을 보고 새로운 값을 결정하는 경우 기하 연산Geometric Operation 일정한 기하학적 규칙에 따라 다른 곳에 있는 값을 취할 수 있는 경우 1. 점 연산 점 연산은 아래와 같은 식으로 쓸 수 있다. 출력 영상 f에서 화소(j, i)의 값은 k개의 입력 영상에서 같은 위치에 존재하는 화소의 값에 따라 정해진다. 대부분 k = 1인 한 장의 영상을 입력한다. (특정 화.. 2021. 4. 15.
컴퓨터 비전 스터디 3주차 : 21.04.04 오츠 알고리즘 구현 #include #include #include using namespace cv; using namespace std; int calcOtsh(Mat src) { int histogram[256] = { 0, }; int otsh_threshold = 0; double between_variance = 0; for (int r = 0; r < src.rows; r++) for (int c = 0; c < src.cols; c++) { auto color = src.at(r, c); int histo = (color[0] + color[1] + color[2]) / 3; histogram[histo] = histogram[histo] + 1; // 누적 합 구하기 } // 0 ~ 25.. 2021. 4. 10.
AppbarLayout, CoordinatorLayout, Behavior CoordinatorLayout 내부의 Scroll Restore (스크롤 위치 복원) 방법 xml 상의 id를 지정해주면 된다. → 스택오버플로우에 의하면 id를 지정해두면 saveState 할 때에 id로 저장하기 때문에 스크롤이 저장된다고 한다. → CoordinatorLayout id 지정하고, 스크롤 behavior 지정된 쪽에서도 id 지정해주어야 스크롤이 저장된다고 한다. https://stackoverflow.com/questions/29208086/save-the-position-of-scrollview-when-the-orientation-changes/39898595#39898595 2021. 4. 7.
Fragment에서 Back키 처리 방식 private val callback = object : OnBackPressedCallback(true // default to enabled) { override fun handleOnBackPressed() { // Do Something } requireActivity().getOnBackPressedDispatcher().addCallback( this, // LifecycleOwner callback ) } activity.onBackPressed()를 쓰지 않고 Fragment에서 자체적으로 처리하는 이유는 무엇일까? Activity에서 특정 Fragment만 지정하여 Back 키에 관한 로직을 정의하게 될 경우 의존이 생기는 것을 방지할 수 있다. onBackPressed를 전달 받기 위해.. 2021. 4. 4.
21.04.03 코틀린 인 액션 읽으면서 궁금한 점 + 기억할 점 메모. 코틀린은 자바6과 완전히 호환된다. - 자바6,,? 자바 세대 별 차이는 람다식이 8에서부터 도입되었다는 것밖에 모르는데 왜 자바6일까..? 자바 @Nullable 어노테이션이랑 코틀린 ? 차이 - (동일한가..?) 자바에선 Nullable 어노테이션이 어케 생겨먹었는지 대부분 코틀린 표준 라이브러리 함수는 람다 함수를 인라이닝한다. - inline 내에 넣어서 순차적으로 적힌 코드랑 동일하게 실행된다는건가? GC... JVM.... 까지....언제 공부하냐 코틀린-자바 변환기 - 이거 사용해보면 완벽하게 동작하진 않던데, 왜인지? 뭔가 당연히.. 어떤건 불일치해서인건 아는데 대표적인 이유가 궁금합니다... 함수를 최상위 수준에 정의할 수 있다. .. 2021. 4. 3.