खोज…


टिप्पणियों

यह अनुभाग इस बात का अवलोकन प्रदान करता है कि opencv क्या है, और क्यों एक डेवलपर इसका उपयोग करना चाहता है।

यह भी opencv के भीतर किसी भी बड़े विषयों का उल्लेख करना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि opencv के लिए दस्तावेज़ीकरण नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।

संस्करण

OpenCV 3

संस्करण रिलीज़ की तारीख
3.2 2016/12/23
3.1 2015/12/18
3.0 2015/06/03
3.0 आरसी 1 2015/04/23
3.0 बीटा 2014-11-07
3.0 अल्फा 2014-08-21

OpenCV 2

संस्करण रिलीज़ की तारीख
2.4.13 2016/05/19
2.4.12 2015/07/30
2.4.11 2015-02-25
2.4.10 2014-10-01
2.4.9 2014-04-14
2.3.1 2011-08-17
2.3.0 2011-07-04
2.2.0 2010-12-05
2.1.0 2010-04-06
2.0.0 2009-10-01
1.0.0 2006/10/19

OpenCV के साथ एक छवि लोड और प्रदर्शित करें

इस उदाहरण के साथ, हम देखेंगे कि डिस्क से एक रंगीन छवि को कैसे लोड किया जाए और OpenCV के अंतर्निहित कार्यों का उपयोग करके इसे प्रदर्शित किया जाए। इसे पूरा करने के लिए हम C / C ++, पायथन या जावा बाइंडिंग का उपयोग कर सकते हैं।

C ++ में:

#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>

#include <iostream>

using namespace cv;

int main(int argc, char** argv) {
    // We'll start by loading an image from the drive
    Mat image = imread("image.jpg", CV_LOAD_IMAGE_COLOR);

    // We check that our image has been correctly loaded
    if(image.empty()) {
        std::cout << "Error: the image has been incorrectly loaded." << std::endl;
        return 0;
    }

    // Then we create a window to display our image
    namedWindow("My first OpenCV window");

    // Finally, we display our image and ask the program to wait for a key to be pressed
    imshow("My first OpenCV window", image);
    waitKey(0);

    return 0;
}

पायथन में:

import sys
import cv2

# We load the image from disk
img = cv2.imread("image.jpg", cv2.CV_LOAD_IMAGE_COLOR)

# We check that our image has been correctly loaded
if img.size == 0
    sys.exit("Error: the image has not been correctly loaded.")

# We create a window to display our image
cv2.namedwindow("My first OpenCV window")

# We display our image and ask the program to wait until a key is pressed
cv2.imshow("My first OpenCV window", img)
cv2.waitKey(0)

# We close the window
cv2.destroyAllWindows()

जावा में:

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.highgui.Highgui;
public class Sample{
public static void main (String[] args) {

    //Load native opencv library
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    //Read image from file first param:file location ,second param:color space
    Mat img = imread("image.jpg",CV_LOAD_IMAGE_COLOR);

    //If the image is successfully read.
    if (img.size() == 0) {
        System.exit(1);
    }
}

HighGui का opencv जावा में कोई भी नामपट्ट या imshow समतुल्य नहीं है। छवि प्रदर्शित करने के लिए स्विंग या स्वाट का उपयोग करें।

ओपनसीवी का निर्माण और स्रोत से स्थापित करें

यह स्रोत से डेबियन-आधारित लिनक्स सिस्टम पर OpenCV 3 को स्थापित करने के लिए एक कदम-दर-चरण मार्गदर्शिका है। अन्य डिस्ट्रोस के लिए चरणों को समान रहना चाहिए, बस बिल्ड के लिए पैकेज स्थापित करते समय संबंधित पैकेज मैनेजर कमांड को प्रतिस्थापित करें।

नोट: यदि आप समय निर्माण सामग्री को बर्बाद करने या टर्मिनल को नापसंद करने का अनुभव नहीं करते हैं, तो आप सबसे अधिक संभावना है कि SynCic पैकेज प्रबंधक GUI से OpenCV स्थापित कर सकते हैं। हालांकि, ये पुस्तकालय अक्सर पुराने हैं।

बिल्ड के लिए तैयार करें

आवश्यक पैकेज स्थापित करने के लिए अपने टर्मिनल में निम्नलिखित आदेश जारी करें:

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config \
                     libavcodec-dev libavformat-dev libswscale-dev

निम्नलिखित पैकेज वैकल्पिक हैं:

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev \
                     libpng-devlibtiff-dev libjasper-dev libdc1394-22-dev

OpenCV स्रोत कोड प्राप्त करने और बिल्ड तैयार करने के लिए निम्नलिखित कमांड जारी करें:

mkdir ~/src
cd ~/src
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build && cd build

निर्माण और स्थापित करें

हम निर्माण में उदाहरणों को शामिल करते हैं, लेकिन उन्हें छोड़ने के लिए स्वतंत्र महसूस करते हैं। अन्य झंडे सेट करने और अपने निर्माण को अनुकूलित करने के लिए स्वतंत्र महसूस करें जैसा कि आप फिट देखते हैं।

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D INSTALL_C_EXAMPLES=ON ..

यदि CMake ने कोई त्रुटि या लापता लाइब्रेरी की रिपोर्ट नहीं की है, तो बिल्ड के साथ जारी रखें।

make -j$(nproc)

यदि कोई त्रुटि उत्पन्न नहीं हुई थी, तो हम OpenCV को सिस्टम में स्थापित करने के साथ ले जा सकते हैं:

sudo make install

अब OpenCV आपके सिस्टम के लिए उपलब्ध होना चाहिए। आप यह जानने के लिए कि OpenCV कहाँ स्थापित किया गया था और किन पुस्तकालयों को स्थापित किया गया था, निम्न पंक्तियों का उपयोग कर सकते हैं:

pkg-config --cflags opencv  # get the include path (-I)
pkg-config --libs opencv    # get the libraries path (-L) and the libraries (-l)

परीक्षण स्थापना

हम पहले C ++ उदाहरण बनाते हैं:

cd ~/src/opencv/samples
cmake .
make

यदि कोई त्रुटि उत्पन्न नहीं हुई थी, तो किसी भी नमूने को चलाएं, जैसे

./cpp/cpp-example-edge

यदि नमूना चलता है, तो सी ++ लाइब्रेरी ठीक से स्थापित हैं।

अगला, पायथन बाइंडिंग का परीक्षण करें:

python
>> import cv2
>> print cv2.__version__

यदि ये कमांड ओपनसीवी को आयात करते हैं और शिकायत किए बिना सही संस्करण को प्रिंट करते हैं, तो पायथन बाइंडिंग ठीक से स्थापित हैं।

बधाई हो, आपने अभी OpenCV का निर्माण और स्थापना की है। हैप्पी प्रोग्रामिंग!

मैक के लिए यहां मैक ओएस एक्स पर ओपनसीवी इंस्टॉलेशन देखें

हैलो दुनिया उदाहरण जावा में

OpenCv छवि जावा में फ़ाइल सिस्टम से पढ़ी गई

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
 
public class Giris {    
    public static void main(String[] args) {
        //Load native library
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        //image container object
        Mat imageArray;
        //Read image from file system
        imageArray=Imgcodecs.imread("C:\\Users\\mesutpiskin\\sample.jpg");
        //Get image with & height
        System.out.println(imageArray.rows());
        System.out.println(imageArray.cols());
    }
}

वेब कैमरा से छवि प्राप्त करें

जावा, C / C ++ और पायथन के साथ OpenCV के VideoCapture वर्ग का उपयोग करके वेबकैम से ली गई लाइव वीडियो फ़ीड प्रदर्शित करें।

जावा

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.videoio.VideoCapture;
 
public class Camera {
    public static void main(String[] args) {
        // Load Native Library
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        // image container object
        Mat imageArray = new Mat();
        // Video device acces
        VideoCapture videoDevice = new VideoCapture();
        // 0:Start default video device 1,2 etc video device id
        videoDevice.open(0);
        // is contected
        if (videoDevice.isOpened()) {
        // Get frame from camera
            videoDevice.read(imageArray);
            // image array
            System.out.println(imageArray.toString());
            // Release video device
            videoDevice.release();
        } else {
            System.out.println("Error.");
        }
    }
}

सी ++

#include "opencv2/opencv.hpp"
#include "iostream"

int main(int, char**) {
    // open the first webcam plugged in the computer
    cv::VideoCapture camera(0);
    if (!camera.isOpened()) {
        std::cerr << "ERROR: Could not open camera" << std::endl;
        return 1;
    }

    // create a window to display the images from the webcam
    cv::namedWindow("Webcam", CV_WINDOW_AUTOSIZE);

    // this will contain the image from the webcam
    cv::Mat frame;
        
    // capture the next frame from the webcam
    camera >> frame;
    
    // display the frame until you press a key
    while (1) {
        // show the image on the window
        cv::imshow("Webcam", frame);
        // wait (10ms) for a key to be pressed
        if (cv::waitKey(10) >= 0)
            break;
    }
    return 0;
}

अजगर

import numpy as np
import cv2

# Video source - can be camera index number given by 'ls /dev/video*
# or can be a video file, e.g. '~/Video.avi'
cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

विंडोज पर OpenCV 3.1 के साथ शुरुआत करना

हम विंडोज पर OpenCV 3.1.0 स्थापित करते हैं और आरंभ करते हैं। विंडोज़ पर ओपनसीवी स्थापित करने के दो तरीके हैं। एक इंस्टॉलर डाउनलोड करने और इसे चलाने के लिए है। अन्य स्रोत से निर्माण करना है।

यह OpenCV को स्थापित करने और आरंभ करने का सबसे आसान तरीका है। OpenCV यहां विंडोज पर इंस्टॉल करने के लिए प्री-बिल्ड बायनेरी देता है । डाउनलोड करने के पूरा होने के बाद, इसे निकालें और चुने हुए पथ पर स्थापित करें।

ProTip: सुनिश्चित करें कि आपके OpenCV पथ में कोई रिक्त स्थान शामिल नहीं है। इसलिए, यदि आप इसे C: \ या D: \ root निर्देशिका में स्थापित करते हैं तो बेहतर है

उपरोक्त विधि के साथ समस्या यह है कि आप opencv_contrib मॉड्यूल का उपयोग नहीं कर सकते हैं। इसके अलावा, यह सभी 3 पार्टी उपकरणों और पुस्तकालयों के साथ नहीं आता है। तो, यदि आप इन सभी का उपयोग करना चाहते हैं, तो बस साथ चलो।

मैं ओपनसीवी को स्रोत से स्थापित करने के लिए न्यूनतम न्यूनतम समझाऊंगा। अधिक उन्नत के लिए, यहां देखें।

  • CMake स्थापित करें।
  • कुछ निर्देशिका में https://github.com/Itseez/opencv.git से क्लोन ओपनसीवी स्रोत जिसमें रिक्त स्थान नहीं हैं। इसे "OpenCVdir" के रूप में संदर्भित करता है। यहाँ छवि विवरण दर्ज करें
  • अब, CMake GUI खोलें और अपने सोर्स डायरेक्टरी (OpenCVdir) को सोर्स मेन्यू में जोड़ें और डायरेक्टरी को बिल्ड मेन्यू में बनाएँ। युक्ति: यदि कोई निर्माण निर्देशिका नहीं है, तो अपने opencv फ़ोल्डर में एक बनाएं। यहाँ छवि विवरण दर्ज करें
  • कॉन्फ़िगर करें पर क्लिक करें और अपने विजुअल स्टूडियो कंपाइलर संस्करण का चयन करें। मेरे पास विजुअल स्टूडियो 2013 प्रोफेशनल 32-बिट था, इसलिए मैंने विजुअल स्टूडियो 12 कंपाइलर को चुना। यहाँ छवि विवरण दर्ज करें

युक्ति: आप यहां से Visual Studio 2013 Professional डाउनलोड कर सकते हैं। यह साइन इन करने के बाद 30 दिनों के परीक्षण + 90 दिनों के विस्तारित निशान के साथ आता है।

  • प्रेस फिनिश और सीएमके सभी पैकेजों को स्वचालित रूप से लोड करेगा। आप पैकेज जोड़ या हटा सकते हैं। फिर से कॉन्फ़िगर करें दबाएँ।
  • यदि आप अतिरिक्त opencv_contrib मॉड्यूल के साथ निर्माण करना चाहते हैं, तो आपको उन्हें यहां से डाउनलोड करना होगा। फिर, उन्हें निकालें और नीचे दिखाए गए अनुसार अपने CMake में opencv_contrib / मॉड्यूल निर्देशिका जोड़ें। यहाँ छवि विवरण दर्ज करें
  • अब Configure फिर से दबाएं और फिर Generate दबाएं।
  • CMake बंद करें। अपने_opencv \ बिल्ड फ़ोल्डर पर जाएं और 'OpenCV.sln' नाम की फ़ाइल खोलें। - यह विजुअल स्टूडियो खोलेगा। अब, इसे डिबग दोनों में चलाएं यहाँ छवि विवरण दर्ज करें मोड और रिलीज यहाँ छवि विवरण दर्ज करें मोड।
  • अब, अपने विज़ुअल स्टूडियो के शीर्ष दाईं ओर समाधान एक्सप्लोरर में, INSTALL प्रोजेक्ट का चयन करें और इसका निर्माण करें। यहाँ छवि विवरण दर्ज करें

हुर्रे !! अपने OpenCV का आनंद लें।

OpenCV को जोड़ने के लिए पर्यावरण चर 'पथ चर की निर्देशिका शामिल है:

  • सिस्टम प्रॉपर्टीज पर जाएं और एडवांस्ड सिस्टम सेटिंग्स पर क्लिक करें। यहाँ छवि विवरण दर्ज करें

  • अब, पर्यावरण चर >> पथ >> संपादित करें पर क्लिक करें। यहाँ छवि विवरण दर्ज करें

  • यहां, अपने OpenCVdir में स्थित बिन फ़ोल्डर को जोड़ें / इस चर के लिए निर्माण / स्थापित / x86 / vc ** / bin। मौजूदा पथ मानों को बदलने के लिए सावधान रहें।

  • इसके बाद, आपको पर्यावरण चर को बदलने के लिए अपने सिस्टम को पुनरारंभ करने की आवश्यकता है और अब आप जाने के लिए तैयार हैं।

क्या और क्यों OPENCV?

OpenCV (ओपन सोर्स कंप्यूटर विजन लाइब्रेरी) एक ओपन सोर्स कंप्यूटर विजन और मशीन लर्निंग सॉफ्टवेयर लाइब्रेरी है। इसे विभिन्न उद्देश्यों के लिए बनाया गया था जैसे कि मशीन लर्निंग, कंप्यूटर विज़न, एल्गोरिथ्म, गणितीय कार्य, वीडियो कैप्चरिंग, इमेज प्रोसेसिंग आदि। वर्षों से यह विभिन्न प्लेटफार्मों (विंडोज़, लिनक्स) में इसके समर्थन के लिए शोधकर्ताओं और डेवलपर्स के बीच बहुत लोकप्रिय हो गया है। , एंड्रॉइड, आईओएस)। इसके अलावा यह विभिन्न प्रसिद्ध प्रोग्रामिंग भाषाओं में आवरण है। लाइसेंस समझौते के तहत, इसमें व्यवसायों के लिए कोड का उपयोग करने और संशोधित करने की सुविधा है।

लाइब्रेरी में 2500 से अधिक अनुकूलित एल्गोरिदम हैं, जिसमें प्रदर्शन और गति में उत्कृष्ट सटीकता है। इन एल्गोरिदम का उपयोग चेहरे का पता लगाने और पहचानने, वस्तुओं की पहचान करने, वीडियो में मानवीय क्रियाओं को वर्गीकृत करने, कैमरा आंदोलनों को ट्रैक करने, ऑब्जेक्ट्स को ट्रैक करने, वस्तुओं के 3 डी मॉडल निकालने, स्टीरियो कैमरों से 3 डी पॉइंट क्लाउड बनाने, एक उच्च रिज़ॉल्यूशन का उत्पादन करने के लिए एक साथ छवियों को सिलाई करने के लिए किया जा सकता है। एक पूरे दृश्य की छवि, एक छवि डेटाबेस से समान छवियां ढूंढें, फ्लैश का उपयोग करके ली गई छवियों से लाल आँखें हटाएं, आंखों के आंदोलनों का पालन करें, दृश्यों को पहचानें और मार्करों को संवर्धित वास्तविकता के साथ इसे ओवरले करने के लिए स्थापित करें, आदि ओपनसीवी में महान लोग और समुदाय शामिल हैं। , डेवलपर्स और शोधकर्ताओं, संख्या 47 हजार से अधिक है और अनुमानित डाउनलोड की संख्या 7 मिलियन से अधिक है। पुस्तकालय बड़े पैमाने पर पेशेवर कंपनियों, अनुसंधान समूहों और अन्य समूहों में है।

कई अच्छी तरह से स्थापित कंपनियों जैसे कि Google, याहू, माइक्रोसॉफ्ट, इंटेल, आईबीएम, सोनी, होंडा, टोयोटा जो पुस्तकालय को रोजगार देती हैं, कई स्टार्टअप हैं जैसे एप्लाइड माइंड्स, वीडियोसर्फ और ज़ीटेरा, जो ओपनसीवी का व्यापक उपयोग करते हैं। OpenCV की तैनाती का उपयोग स्ट्रीटव्यू इमेज को एक साथ सिलाई से लेकर इजरायल में निगरानी वीडियो में घुसपैठ का पता लगाना, चीन में खदान के उपकरणों की निगरानी, रोबोट को नेविगेट करने और विलो गैराज में ऑब्जेक्ट्स लेने में मदद करना, यूरोप में स्विमिंग पूल डूबने की दुर्घटनाओं का पता लगाने, इंटरेक्टिव आर्ट चलाने में किया जाता है। स्पेन और न्यूयॉर्क, तुर्की में मलबे के लिए रनवे की जाँच, जापान में तेजी से चेहरे का पता लगाने के लिए दुनिया भर के कारखानों में उत्पादों पर लेबल का निरीक्षण। इसमें C ++, C, Python, Java और MATLAB इंटरफेस हैं और यह विंडोज, लिनक्स, एंड्रॉइड और मैक ओएस को सपोर्ट करता है। ओपनसीवी ज्यादातर वास्तविक समय दृष्टि अनुप्रयोगों की ओर झुकता है और उपलब्ध होने पर एमएमएक्स और एसएसई निर्देशों का लाभ उठाता है। एक पूर्ण विशेषताओं वाले CUDA और OpenCL इंटरफेस को अभी सक्रिय रूप से विकसित किया जा रहा है। 500 से अधिक एल्गोरिदम और लगभग 10 गुना अधिक फ़ंक्शन हैं जो उन एल्गोरिदम की रचना या समर्थन करते हैं। OpenCV मूल रूप से C ++ में लिखा गया है और इसमें एक अस्थायी इंटरफ़ेस है जो एसटीएल कंटेनरों के साथ मूल रूप से काम करता है।

आधिकारिक वेबसाइट से एकत्र की गई जानकारी



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow