opencv를 이용한 특징량의 검출(코너 검출)
소개
opencv를 사용하여 이미지의 특징 량을 감지하는 방법. 이번에는 코너(곡선 등)의 검출을 해 나간다.
2 패턴의 검출 방법을 실시한다.
기초적인 것에 대해서는, 이하의 페이지 참조
파이썬을 이용한 이진화 영상 처리의 기초 ⇒ h tps:// 퀵했다. 작은 m/진 237/있어 MS/04 또는 3D0b56 그림 10065C4 그림 4
해보자
opencv를 사용하지만 코너 감지에는 두 가지 방법이 있습니다.
"cv2.cornerHarris"에 의한 코너 검출
가장자리가 모든 방향으로 높은 휘도 변화를 가진 영역으로 가정.
#サンプル画像からコーナーの検出
import matplotlib.pyplot as plt
%matplotlib inline
import cv2
#画像読み込みと二値化
img = cv2.imread("sample.png",0)
#コーナーの検出
corners = cv2.cornerHarris(img, 3,1,0.04)
plt.imshow(corners, cmap='gray')
plt.savefig('gray_pltsample')
img = cv2.imread("sample.png", 0)
따라서, "0"은 화상의 판독과 동시에 2 치화 화상으로서의 판독을 가능하게한다.
본래라면 "cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)"처럼 쓸 수도 있지만 이번에는 처리를 보기 쉽게 하기 위해 이 방법을 사용했다.
matplotlib에 의해, 표시와 보존을 실시하고 있다.
또한,
corners = cv2.cornerHarris(img, 3,1,0.04)
에 대해서는
3 = 이웃 픽셀 범위(blocksize)
1 = 커널 크기(ksize)
0.04 = Harris 검출기 프리 파라미터 (k)
blockSize - 코너 검출시 고려할 인접 영역의 크기.
ksize - Sobel의 기울기 연산자의 커널 크기.
k - 표현식의 자유 매개 변수.
이론에 대해서는 Harris 코너 감지 를 참조.
"cv2.goodFeaturesToTrack"에 의한 코너 검출
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('sample.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray,100000000,0.01,10)
corners = np.int0(corners)
for i in corners:
x,y = i.ravel()
cv2.circle(img,(x,y),3,255,-1)
plt.imshow(img),plt.show()
특징점에 대하여 점을 칠 수 있다. 이번에는 많이 설정해 보았지만, 그다지 결과에 대한 변화는 없다. 이 적점을 궁리해 보면 좀 더 알기 쉬워지거나 할지도 모른다.
사이고에게
코너의 검출을 행했다. 쉽게 할 수 있는 것이므로 꼭 이론도 포함해 이해해 보면 좋다. 상기의 소개한 것 이외에도 있기 때문에, 다른 기사로 써 보려고 한다.
Reference
이 문제에 관하여(opencv를 이용한 특징량의 검출(코너 검출)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jin237/items/482983869fdd82ba6080
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
opencv를 사용하지만 코너 감지에는 두 가지 방법이 있습니다.
"cv2.cornerHarris"에 의한 코너 검출
가장자리가 모든 방향으로 높은 휘도 변화를 가진 영역으로 가정.
#サンプル画像からコーナーの検出
import matplotlib.pyplot as plt
%matplotlib inline
import cv2
#画像読み込みと二値化
img = cv2.imread("sample.png",0)
#コーナーの検出
corners = cv2.cornerHarris(img, 3,1,0.04)
plt.imshow(corners, cmap='gray')
plt.savefig('gray_pltsample')
img = cv2.imread("sample.png", 0)
따라서, "0"은 화상의 판독과 동시에 2 치화 화상으로서의 판독을 가능하게한다.
본래라면 "cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)"처럼 쓸 수도 있지만 이번에는 처리를 보기 쉽게 하기 위해 이 방법을 사용했다.
matplotlib에 의해, 표시와 보존을 실시하고 있다.
또한,
corners = cv2.cornerHarris(img, 3,1,0.04)
에 대해서는
3 = 이웃 픽셀 범위(blocksize)
1 = 커널 크기(ksize)
0.04 = Harris 검출기 프리 파라미터 (k)
blockSize - 코너 검출시 고려할 인접 영역의 크기.
ksize - Sobel의 기울기 연산자의 커널 크기.
k - 표현식의 자유 매개 변수.
이론에 대해서는 Harris 코너 감지 를 참조.
"cv2.goodFeaturesToTrack"에 의한 코너 검출
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('sample.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray,100000000,0.01,10)
corners = np.int0(corners)
for i in corners:
x,y = i.ravel()
cv2.circle(img,(x,y),3,255,-1)
plt.imshow(img),plt.show()
특징점에 대하여 점을 칠 수 있다. 이번에는 많이 설정해 보았지만, 그다지 결과에 대한 변화는 없다. 이 적점을 궁리해 보면 좀 더 알기 쉬워지거나 할지도 모른다.
사이고에게
코너의 검출을 행했다. 쉽게 할 수 있는 것이므로 꼭 이론도 포함해 이해해 보면 좋다. 상기의 소개한 것 이외에도 있기 때문에, 다른 기사로 써 보려고 한다.
Reference
이 문제에 관하여(opencv를 이용한 특징량의 검출(코너 검출)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jin237/items/482983869fdd82ba6080
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(opencv를 이용한 특징량의 검출(코너 검출)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jin237/items/482983869fdd82ba6080텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)