#python
import cv2
def detect_keypoints():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch14\\keypoints\\box_in_scene.png", cv2.IMREAD_GRAYSCALE)
if src is None:
print("Image load failed!")
return
orb = cv2.ORB_create()
keypoints = orb.detect(src, None)
keypoints, desc = orb.compute(src, keypoints)
print("keypoints.size():", len(keypoints))
print("desc.size():", desc.shape)
dst = cv2.drawKeypoints(src, keypoints, None, color=(0, 255, 0), flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow("src", src)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
detect_keypoints()
// C++
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
void detect_keypoints();
int main(void)
{
detect_keypoints();
return 0;
}
void detect_keypoints()
{
Mat src = imread("box_in_scene.png", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
Ptr<Feature2D> feature = ORB::create();
vector<KeyPoint> keypoints;
feature->detect(src, keypoints);
Mat desc;
feature->compute(src, keypoints, desc);
cout << "keypoints.size(): " << keypoints.size() << endl;
cout << "desc.size(): " << desc.size() << endl;
Mat dst;
drawKeypoints(src, keypoints, dst, Scalar::all(-1), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
imshow("src", src);
imshow("dst", dst);
waitKey();
destroyAllWindows();
}
C++ Code 출처 : OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 저

'OpenCV' 카테고리의 다른 글
ch14 stitching (0) | 2024.05.22 |
---|---|
ch14 matching (0) | 2024.05.22 |
ch14 corners (0) | 2024.05.22 |
ch13 template (0) | 2024.05.21 |
ch13 QRCode (0) | 2024.05.21 |