opencv

2012-03-23 16 views
5

में कम-पास फ़िल्टर मैं जानना चाहता हूं कि मैं IplImage पर opencv में निम्न-पास फ़िल्टर कैसे कर सकता हूं। उदाहरण के लिए "बॉक्सकार" या कुछ इसी तरह के।opencv

मैंने इसे गुगल किया है लेकिन मुझे एक स्पष्ट समाधान नहीं मिल रहा है। यदि कोई मुझे ओपनसीवी या जावैक में इसे कार्यान्वित करने के तरीके पर सही दिशा में मुझे एक उदाहरण दे या मुझे इंगित कर सकता है तो मैं आभारी रहूंगा।

अग्रिम में Thx।

+0

मुझे यकीन नहीं है कि आपका क्या मतलब है। कम-पास आमतौर पर कम आवृत्तियों का मतलब है ... तो क्या आपका मतलब रंग स्पेक्ट्रम का कुछ अंत है? – thecoshman

+1

अधिक जानकारी के लिए: http://paulbourke.net/miscellaneous/imagefilter/ – Ojtwist

उत्तर

4

यहाँ शामिल किया गया है:

#include "opencv2/imgproc/imgproc_c.h" 
#include "opencv2/highgui/highgui_c.h" 

int main() 
{ 
    IplImage* img = cvLoadImage("input.jpg", 1); 
    IplImage* dst=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3); 
    cvSmooth(img, dst, CV_BLUR); 
    cvSaveImage("filtered.jpg",dst); 
} 

cvSmooth समारोह की क्या पैरामीटर के बारे में जानकारी के लिए आप cvSmooth Documentation पर एक नज़र डालें।

यदि आप कस्टम फ़िल्टर मुखौटा उपयोग करना चाहते हैं तो आप समारोह cvFilter2D उपयोग कर सकते हैं:

#include "opencv2/imgproc/imgproc_c.h" 
#include "opencv2/highgui/highgui_c.h" 

int main() 
{ 
    IplImage* img = cvLoadImage("input.jpg", 1); 
    IplImage* dst=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3); 
    double a[9]={ 1.0/9.0,1.0/9.0,1.0/9.0, 
        1.0/9.0,1.0/9.0,1.0/9.0, 
        1.0/9.0,1.0/9.0,1.0/9.0}; 
    CvMat k; 
    cvInitMatHeader(&k, 3, 3, CV_64FC1, a); 

    cvFilter2D(img ,dst, &k,cvPoint(-1,-1)); 
    cvSaveImage("filtered.jpg",dst); 
} 

इन उदाहरणों OpenCV 2.3.1 का उपयोग करें।

3

openCV filtering दस्तावेज़ीकरण थोड़ा उलझन में है क्योंकि फ़ंक्शंस हर संभव फ़िल्टरिंग तकनीक को आज़माकर और प्रभावी रूप से कवर करता है।

अपने स्वयं के फिल्टर कर्नेल के प्रयोग पर एक tutorial जो सी एपीआई और IplImage का उपयोग कर एक उदाहरण है बॉक्स फिल्टर