전체 글
-
Computer Vision(Gaussian Filtering)[3]프로그래밍/Python 2020. 4. 20. 13:07
이번 시간에는 Color(RGB)로 Blurring한 이미지를 출력해보겠다. 처음 이 문제를 풀 때는 머리가 하얬다. '2차원 배열에 RGB를 넣으려면 어떻게 해야하지?' 라는 생각이 맴돌았다. 해결 방법은 3차원 배열이었다. [행][열][RGB] 라는 배열을 사용하면 간단했다. gaussian filter와 convolve 할 함수를 만들어보았다. Convolve Color 코드 zero-padding을 할 때, 3차원의 RGB에는 padding을 해 줄 필요가 없기 때문에 (0,0)으로 패딩을 시키지 않는다. 이를 rot90() 함수를 통해 180도 회전시키고, RGB가 추가된 배열을 선언한다. 이 배열의 각 R, G, B에 맞게 각각 연산을 해주었다. 세 번 수행하는 for loop를 사용해도 되지..
-
Computer Vision(Gaussian Filtering)[2]프로그래밍/Python 2020. 4. 20. 12:27
30분 넘게 글 쓰다가 인터넷이 팅겨서 다시 씁니다... 정말 성심성의껏 글쓰고 있었는데 이렇게 날라가니까 슬프네요... -------------------------------------------------------------------- 저번 시간에 앞서서 우리는 gaussian filter를 만들었다. 이번 시간에는 convolve 함수와 이미지를 사용하여 실제로 블러된 이미지를 출력하는 시간을 가지도록 하겠다. convolve 코드 필터의 크기로 부터 padding 시켜야 하는 정도가 구해진다. pad함수에 constant라는 zero-padding 파라미터를 넣어 이미지를 zero-padding 시킨다. 위의 그림은 convolution 방법이다. 즉, w * f는 blur처리된 이미지의 한..
-
Computer Vision(Gaussian Filtering)[1]프로그래밍/Python 2020. 4. 20. 00:57
Gaussian filtering을 통해 이미지 블러링을 하는 문제가 있었다. 먼저 Numpy에 대한 기본적인 지식이 필요했지만, 6년만에 잡아보는 파이썬에 for loop조차 돌리지 못하는 나를 보게되었다. 그래서 나는 하루를 python에 투자하기로 했다. Blurred Image 먼저 blurring된 이미지를 얻기 위해서는 Image *(convolution) Gaussian Filter 를 통해 low pass filter를 얻을 수 있다. 이 low pass filtered image를 우리는 일반화 하여 블러링된 이미지라고 부른다. 이번 시간에는 이 컨벌루션에 사용되는 Gaussian Filter를 구하는 시간을 가져보도록 하겠다. Gauss Filter(1 dimension) 코드 결과 값..
-
코테 일기(7) : 백준 [1260번] DFS와 BFS(DFS & BFS 완성)프로그래밍/C++ 2020. 4. 20. 00:37
오랜만에 C++을 잡으려 하니 벌써부터 심장이 아프다.. 내가 짠 BFS 코드를 보면서 DFS를 짜기에는 코딩실력이 아닌 Copy and Paste의 느낌이 강할 것 같아 과감하게 BFS를 보지 않고 풀어보았다. 처음 든 생각 먼저 DFS는 stack 구조가 매우 편해보였다. Depth로 탐색을 하기에 Terminal Node(최하위노드)를 제거하는 것 이 아니고, 탐색을 할 노드가 없으면 Tree를 거슬러 올라가야 한다는 점에서 Stack을 사용했다. 또한 백준에서는 함수마다 입력을 받는 것이 아니라, 주어진 입력을 통해 두 개의 함수를 모두 사용하는 것이기에 처음 필요한 입출력을 main에 넣었다. 코드(DFS만) void dfs(int n, int m, int v, vector arr) { int*..
-
코테 일기(6) : 백준 [1260번] DFS와 BFS(BFS편)프로그래밍/C++ 2020. 4. 5. 16:29
CodeUp으로 몸? 뇌?를 풀어줬으니, 이제 알고리즘의 꽃인 백준 온라인 저지로 입성하자. 처음 접한 문제는 DFS, BFS를 다루는 문제였다. 그래프 탐색 알고리즘은 알고리즘 필수 요소 중 하나이기 때문에 절대적으로 짚고 넘어가야 한다. BFS는 Breath-First Search 이다. 즉 depth를 한 단계씩 내려가면서 너비를 위주로 탐색하는 너비우선탐색이다. 예제 입력 2번과 같은 경우 3번에서 1, 4번을 먼저 방문 한 후에1번에서 2번, 4번에서 5번을 방문하는 결과가 나온다.즉 3 (1 4) (2 5) 와 같은 결과가 나와야 한다. 처음 든 생각 정점(Node)의 개수가 N이고 간선의 개수가 M이면 탐색은 M번이 이루어 져야 한다. { for(int i = 0; i> srt >> dst;..
-
코테 일기(4) : CodeUp [1090] 수 나열하기2프로그래밍/C++ 2020. 4. 5. 00:09
정답률 18%.. 고난이도겠지.. 음.. 고등학교 이후로 손 놓긴 했지만 한번 풀어볼까..? 처음 든 생각 이번엔 함수를 활용 해봐야지. function의 인자값으로 a, r, n을 입력받고 { int geoSequence(int a, int r, int n) } 반복문을 통해 n번째 수를 파악할 수 있게 하고 n번째 수를 출력하는 문제니까 n-1번 만큼 실행하면 되겠다. { for(i=1;i> a >> r >> n; cout