일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스택
- cv2
- transformer
- 3D
- 알고리즘
- 딥러닝
- 논문 구현
- re-identification
- point cloud
- 큐
- attention
- Computer Vision
- deep learning
- reconstruction
- OpenCV
- Object Tracking
- Threshold
- Knowledge Distillation
- center loss
- 파이썬
- 프로그래머스
- flame
- NLP
- Python
- Object Detection
- Deeplearning
- level2
- numpy
- 자료구조
- 임계처리
- Today
- Total
목록코딩/opencv (7)
공돌이 공룡의 서재
John F Canny라는 분이 개발한 알고리즘으로, 간단 요약하자면 이미지 상에서 edge, 즉 경계선 또는 테두리를 찾을 때 유용한 알고리즘이다. 코드는 원리에 비해 간단해서 원리를 몰라도 사용 가능하지만 어떻게 찾는지 정도만 읽으면 도움이 될 것이다. 어떻게 찾을까. 5개의 과정을 거치는데 다음과 같다. (출처: en.wikipedia.org/wiki/Canny_edge_detector) 1. 가우시안 필터를 이용하여 이미지 상에서 노이즈를 제거하여 smooth 이미지를 얻는다.: 가우시안 필터란 저주파 필터에 해당하는 필터다. 저주파 필터란 주파수가 작은 신호들은 통과시키고 높은 신호들은 거르는 역할을 하는 필터다. 일반적으로 5x5 크기의 필터를 사용하고, 필터 크기가 클수록 노이즈에 대한 민감..
지금까지 배운 임계처리 방식에서는 단점이 하나 있다. 바로 조명에 약할 수 있다는 것. 사진을 찍을 때 조명의 위치에 따라서 어떤 사물은 그늘이 져있어 더 어둡게 보일 수 있고, 어떤 사물은 빛이 강해서 원래 색보다 더 밝게 보일 수 있다. 상황에 따라서는 글자의 일부분은 읽을 수 있는데 다른 부분은 어두워서 읽지 못하는 경우도 생길 것이다. 이런 그림이 있다고 생각해보자. 3등분했을 때 조명 차이가 뚜렷히 나는 사진이라고 생각해보자. 여기서 사람, 사과, 집 (객체)를 배경과 구분하여 얻고 싶은 상황이다. 하나의 임계값 (Tau 0)로 전체 이미지에 대해 임계처리를 한다 생각하자. 임의로 왼쪽부터 영역의 픽셀값이 60, 120, 180이라 하고, 임계값을 그 가운데 값인 120이라고 하자. 그럼 집이 ..
0. 들어가기 전 2020/09/02 - [코딩/opencv] - [python openCV] 이미지 처리 - 임계 처리 (1): inRange, threshold 2020/09/11 - [코딩/opencv] - [python openCV] 이미지 처리 - 임계 처리 (2): otsu algorithm thresholding 논문 분석 및 구현 첫 번째 임계처리 포스트에서 otsu와 triangle에 대해 알아보았고, 두 번째 포스트에서는 otsu를 deep하게 알아보았다. 이번 포스트에선 마지막으로 triangle algorithm을 자세히 다루고자 한다. 이 thresholding은 정보면에서 조금 문제가 있었기에 목차는 다음과 같이 하여 작성하겠다. 논문 설명 알고리즘 코드 구현 (1) & 문제 상..
0. 들어가기 전 2020/09/02 - [코딩/opencv] - [python openCV] 이미지 처리 - 임계 처리 (1): inRange, threshold [python openCV] 이미지 처리 - 임계 처리 (1): inRange, threshold 오늘 갖고놀 이미지. 임계 처리란 임계값(threshold value. 경계가 되는 기준 값)을 기준으로 이미지를 이진화화는 것을 말한다. 이진화를 이진화를 했을 때 0과 255로 이루어진 흑백 이� mr-waguwagu.tistory.com 이전 포스트의 마지막에서 threshold의 여러 방법들 중에서 otsu 와 triangle에 대해 간단하게 알아보았다. 주어진 threshold를 사용하지 않고 자체적인 alogrithm을 따라 새로운 t..
오늘 갖고놀 이미지. 임계 처리란 임계값(threshold value. 경계가 되는 기준 값)을 기준으로 이미지를 이진화화는 것을 말한다. 이진화를 이진화를 했을 때 0과 255로 이루어진 흑백 이미지로 만들 수 있고 값이 2개만 있기 때문에 True False형태로 바꾸어서 다른 작업을 수행하는 것이 가능하다. 간단하게 구현하면 다음과 같다. import cv2 import time road = cv2.imread('./road.jpg') gray = cv2.cvtColor(road, cv2.COLOR_BGR2GRAY) height, width = gray.shape th = 150 start = time.perf_counter() for i in range(height): for j in range(..
이번 포스트에서 다뤄볼 함수는 이전 포스트의 기본개념을 바탕으로 이뤄진다. 따라서 새로 배울 내용은 없고 바로 코드를 보자. 기본개념 복습! https://mr-waguwagu.tistory.com/11 [python openCV] 이미지 처리 - 읽기 / 보기 : imread, imshow, waitKey 1. 이미지 저장형식 컬러 이미지로는 RGB, BGR, HSV 등이 있고 흑백으로는 Grayscale 형태가 주로 쓰인다. 이미지를 불러오면 전자의 경우 3차원 행렬, 후자의 경우 2차원 행렬이다. 각 저장� mr-waguwagu.tistory.com 크기와 색상 변환 결과로 확인하고자 하는 것은 가로 폭, 세로 폭, 채널 수이다. cv2.imread로 읽은 이미지 파일의 배열에 .shape을 붙이면..
1. 이미지 저장형식 컬러 이미지로는 RGB, BGR, HSV 등이 있고 흑백으로는 Grayscale 형태가 주로 쓰인다. 이미지를 불러오면 전자의 경우 3차원 행렬, 후자의 경우 2차원 행렬이다. 각 저장형식에 따른 설명은 다음과 같다. RGB: 빛의 3원소 (Red/Green/Blue)를 0~255 에 해당하는 값으로 저장한다. 빛은 겹칠수록 흰색에 가까워지기 때문에, (255, 255, 255) 에 가까워질수록 흰색, (0, 0, 0)에 가까워질수록 검정색이다. BGR: openCV에서는 처음 이미지를 불러오면 BGR형태로 불러온다. 순서가 RGB와 반대 HSV: Hue(색상), Saturation(채도), Value(명도) 의 형태로 이미지를 나타낸다. 특정 색상을 정하기 좋다. Grayscale..