में संस्करण 3.0 के बाद से, डेन्सफ़ेचरडेटेटर अब उपलब्ध नहीं है। क्या कोई मुझे दिखा सकता है कि ओपनसीवी 3.0 में डेंस सिफ्ट सुविधाओं की गणना कैसे करें? मैं इसे दस्तावेज में नहीं मिला।ओपनसीवी 3.0
अग्रिम में बहुत बहुत धन्यवाद!
में संस्करण 3.0 के बाद से, डेन्सफ़ेचरडेटेटर अब उपलब्ध नहीं है। क्या कोई मुझे दिखा सकता है कि ओपनसीवी 3.0 में डेंस सिफ्ट सुविधाओं की गणना कैसे करें? मैं इसे दस्तावेज में नहीं मिला।ओपनसीवी 3.0
अग्रिम में बहुत बहुत धन्यवाद!
यहाँ कैसे मैं में OpenCV 3 सी घने झारना इस्तेमाल किया है ++:
SiftDescriptorExtractor sift;
vector<KeyPoint> keypoints; // keypoint storage
Mat descriptors; // descriptor storage
// manual keypoint grid
int step = 10; // 10 pixels spacing between kp's
for (int y=step; y<img.rows-step; y+=step){
for (int x=step; x<img.cols-step; x+=step){
// x,y,radius
keypoints.push_back(KeyPoint(float(x), float(y), float(step)));
}
}
// compute descriptors
sift.compute(img, keypoints, descriptors);
मैं चित्र का पिक्सेल स्थानों के माध्यम से स्कैनिंग द्वारा
cv2.KeyPoint
रों की एक सूची बना
अच्छी तरह से काम करता है
यदि मैं कई छवियों से सुविधाओं को निकालना चाहता हूं ... क्या मुझे सभी छवियों को पहले एक सामान्य आकार में बदलना चाहिए? –
बहुत बहुत धन्यवाद। (और देरी के लिए खेद है) – Khue
आप cv2.KeyPoints
से sift.compute
की एक सूची पास कर सकते हैं। यह उदाहरण पायथन में है, लेकिन यह सिद्धांत दिखाता है।
import skimage.data as skid
import cv2
import pylab as plt
img = skid.lena()
gray= cv2.cvtColor(img ,cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
step_size = 5
kp = [cv2.KeyPoint(x, y, step_size) for y in range(0, gray.shape[0], step_size)
for x in range(0, gray.shape[1], step_size)]
img=cv2.drawKeypoints(gray,kp, img)
plt.figure(figsize=(20,10))
plt.imshow(img)
plt.show()
dense_feat = sift.compute(gray, kp)
हाय जैसे SIFT के विकल्प का उपयोग कर सकते हैं, क्या आप जानते हैं कि इसके विपरीत कैसे लागू करें इस मामले में दहलीज? मैंने SIFT_create() में कंट्रास्ट थ्रेसहोल्ड पैरामीटर जोड़ने की कोशिश की लेकिन इसे अनदेखा कर दिया गया। – pomxipum
मैं 100% निश्चित नहीं हूं, लेकिन ऐसा लगता है कि आपको इसे स्वयं लागू करना होगा। जवाब एक अलग सवाल के रूप में पोस्ट करने के लिए पर्याप्त जटिल है। हालांकि, इसके विपरीत गणना की गणना की जाती है https://github.com/opencv/opencv_contrib/blob/7238cd27bae5436605d9e32ca0b87f266381a9e0/modules/xfeatures2d/src/sift.cpp#L457 –
आपका मतलब डेविस सुविधाओं की तरह कुछ है? यह ओपनसीवी 3.0 में है लेकिन बाहरी contrib पैकेज में है। आपको इसे स्वयं संकलित करना होगा – DawidPi
@DawidPi: मेरे पास opencv_contrib स्थापित है और प्रोजेक्ट में xfeature2d शामिल है, लेकिन अभी भी DenseFeatureDetector जैसे कुछ भी नहीं मिला। घने एसआईएफटी बस विभिन्न पैमाने पर एक ग्रिड पर गणना की गई एसआईएफटी विशेषताएं है। – Khue
DenseFeatureDetector detectImpl का कार्यान्वयन इस तरह था। मुझे लगता है कि आप इसे अपने आप कर सकते हैं, लेकिन मुझे लगता है कि मैं आपकी मदद नहीं कर सकता क्योंकि मैं कोई गणितज्ञ नहीं हूं और न ही सीवी विशेषज्ञ हूं। https://github.com/Itseez/opencv/blob/2.4/modules/features2d/src/detectors.cpp#L162 – DawidPi