본문 바로가기

IT78

프로세스와 스레드 프로세스는 실행중인 프로그램을 의미한다. (메모리에 올라와서 실행되고 있는 프로그램의 인스턴스) 프로세스는 코드, 데이터, 힙, 스택 별로 각각의 주소공간에 독립적으로 할당받는다. 반면 스레드는 스택만 따로 할당 받고 나머지는 서로 공유한다. 프로세스는 자신만의 고유 공간과 자원을 할당받아 사용하는 데에 비해 스레드는 다른 스레드와 공간, 자원을 공유하면서 사용한다. 스레드는 프로세스의 실행되는 여러 흐름의 단위를 의미한다. 프로세스마다 메인 스레드를 포함하여 최소 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.
컴퓨터 비전 스터디 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.
컴퓨터 비전 스터디 2주차 : 21.03.28 3. 이진 영상 때로는 영상을 백(전경)과 흑(배경)의 두 가지 값만 가진 이진 영상으로 바꿀 필요가 있다. 이진 영상의 의미는 백 1, 흑 0의 값을 갖는 영상이라는 뜻이다. 1. 이진화와 오츄 알고리즘 화소의 명암값을 흑과 백 중 하나로 결정하려면, 일정한 임계값threshold T를 정하여 해당 값보다 크다면 백, 작다면 흑으로 바꾸는 방법이 있다. 이때, 임계값을 어떻게 정하느냐의 문제에서, 가장 간단한 방법은 히스토그램을 분석하여 두 봉우리 사이의 계곡 지점을 T로 취하고, 그것보다 큰 화소는 백(1 or L - 1) 그렇지 않은 화소는 흑(0)으로 바꾸는 것이다. 해당 방법은 전역 고정 이진화Global fixed thresholding이라고 한다. (a)의 영상을 (c)처럼 이진화할 때 사용.. 2021. 3. 27.
반복자 패턴(Iterator Pattern) 나는 왜... 시험이 끝나고나서야 개념 정리를 하는 걸까..? 슬프니까 바로 정리해봅니다... C++ 개념에서 최근에 G가 물어본 적이 있었다. .과 ->의 접근 방식 차이었는데, 포인터로 접근할 건지, 다이렉트로 접근할 건지 차이 아닌가? 하면서 대충 넘겼던 기억이 난다. 이게 무슨 데드 플래그도 아니고 그때 나도 다시 한번 찾아봤더라면 기억했을 것 같은데 하하 더보기 접근법에 대해 먼저 간단히 짚고가자면, 1. -> for accessing object member variables and methods via pointer to object Foo *foo = new Foo(); foo->member_var = 10; foo->member_func(); -> (arrow operator)는 객체를 .. 2021. 3. 27.
컴퓨터 비전 스터디 1주차 : 21.03.21 1주차에는 간단히 컴퓨터 비전에 대한 설명이 적힌 1장과, 이미지 해상도, 그리고 이미지가 매트릭스로 이루어져있다는 설명의 2장의 초반까지 진도를 나갔다. 1. 디지털 영상이란? 1. 디지털 영상의 태동 디지털 영상의 응용은 신문 산업에서 일어났다. 이전에는 영상을 배편으로 전달했는데, 유럽 -> 대서양 -> 미국에 이르기까지 몇 주가 걸렸다. 따라서 영상을 인쇄할 쯔음에는 해당 뉴스는 사람들의 관심에서 멀어졌다. 그러던 중 2시간 정도면 영상을 전달할 수 있게 되자, 미디어 산업에 혁명이 일어났다. 대략 이 이후로 1세기가 지난 지금, '컴퓨터 비전과 인터넷의 교차점'에 초점을 맞춘 인터넷 비전이라는 연구 분야가 생겨날 정도로 영상처리와 컴퓨터 비전은 주목 받고 있다. 2. 획득과 표현 카메라는 사람의.. 2021. 3. 21.