এই সমস্ত ওপেনসিভি পাইথন ইন্টারফেসের মধ্যে কী আলাদা?


88

সেখানে

  • opencv (ওপেনসিভি লোকের পাঠাগারটি),
  • cv (ওপেনসিভি ছেলেরা থেকে পুরানো গ্রন্থাগার) এবং
  • pyopencvপূর্বসূরীর সাথে ctypes-opencv

প্রধান পার্থক্যগুলি কী এবং আমার কোনটি ব্যবহার করা উচিত?

উত্তর:


139

আনুষ্ঠানিকভাবে, ওপেনসিভি দুটি ধরণের পাইথন ইন্টারফেস প্রকাশ করে cvএবং cv2

সিভি:

আমি কাজ শুরু cv। এতে, সমস্ত ওপেনসিভি ডেটা ধরণের সংরক্ষণ করা হয়। উদাহরণস্বরূপ, লোড করা অবস্থায়, চিত্রগুলি বিন্যাসে থাকে cvMat, সি ++ এর মতো।

অ্যারে অপারেশন জন্য, মত বিভিন্ন ফাংশন আছে cvSet2D, cvGet2Dইত্যাদি এবং কিছু আলোচনা বলছি, তারা ধীর হয়।

ImageROI জন্য, আপনি মত বিশেষ ফাংশন প্রয়োজন cvSetImageROI

যদি আপনি রূপক খুঁজে পান, cvSeqকাঠামোগুলি ফিরে আসে যা পাইথন তালিকাগুলি বা নম্পপি অ্যারের তুলনায় কাজ করা এতটা ভাল নয়।

(এবং আমি মনে করি, শীঘ্রই উন্নয়ন বন্ধ করা হবে না। এর আগে মাত্র ছিল cv। পরবর্তীতে OpenCV উভয় সাথে আসা cvএবং cv2। এখন, সর্বশেষ রিলিজ, সেখানে শুধুমাত্র cv2মডিউল, এবং cvএকটি উপশ্রেণী ভিতরে cv2। আপনাকে কল করার প্রয়োজন import cv2.cv as cvএটি অ্যাক্সেস করতে।)

সিভি 2:

এবং সর্বশেষ এক cv2। এই, সবকিছু যেমন ফিরিয়ে দেওয়া হয় NumPyমত বস্তু ndarray এবং native Pythonমত বস্তু lists, tuples, dictionary, ইত্যাদি তাই এই NumPy সমর্থন কারণে, আপনি কোনো numpy অপারেশন এখানে করতে পারবেন। NumPyএকটি অত্যন্ত স্থিতিশীল এবং দ্রুত অ্যারে প্রসেসিং গ্রন্থাগার।

উদাহরণস্বরূপ, আপনি যদি কোনও চিত্র লোড করেন তবে একটি ndarrayফিরে আসে।

array[i,j] আপনাকে (i, j) পজিশনে পিক্সেল মান দেয়।

এছাড়াও, চিত্রের জন্য, অ্যারে স্লাইসিংয়ের মতো ব্যবহার করা যেতে পারে ROI=array[c1:c2,r1:r2]। পৃথক ফাংশন প্রয়োজন নেই।

দুটি ছবি যুক্ত করতে কোনও ফাংশন কল করার দরকার নেই, শুধু করুন res = img1+img2। (কিন্তু NumPy উপরন্তু ইমেজ মত uint8 অ্যারে একটি মডিউল অপারেশন। প্রবন্ধটা দেখুন OpenCV এবং Numpy মধ্যে ম্যাট্রিক্স পাটিগণিত মধ্যে পার্থক্য আরো জানতে।

কনসার্সগুলি প্রত্যাবর্তন করা নমুনি অ্যারেগুলির তালিকা। কনট্যুর্স - 1: সূচনা হওয়াতে কনট্যুরগুলি সম্পর্কে আপনি বিস্তারিত আলোচনা খুঁজে পেতে পারেন ।

সংক্ষেপে, সিভি 2 সহ সবকিছুই সরলীকৃত এবং বেশ দ্রুত।

ওপেনসিভি-পাইথন ইন্টারফেস, সিভি এবং সিভি 2 এর পারফরম্যান্স তুলনাcv2 স্ট্যাক ওভারফ্লো প্রশ্নে NumPy গতি বাড়ানোর বিষয়ে একটি সহজ আলোচনা ।

পাইপেনসিভি :

আমি এটি ব্যবহার না করার পর থেকে আমি এ সম্পর্কে খুব বেশি কিছু জানি না। তবে মনে হয় এটি আরও উন্নয়ন বন্ধ করে দিয়েছে।

আমি মনে করি সরকারী গ্রন্থাগারগুলিতে আঁকড়ে থাকাই আরও ভাল হবে।

সংক্ষেপে, আমি আপনাকে সিভি 2 ব্যবহার করার পরামর্শ দিচ্ছি!

সম্পাদনা: পাইথনের জন্য উইন্ডোজ ওপেনসিভি ইনস্টল করতে cv2মডিউলটির জন্য ইনস্টলেশন পদ্ধতিটি দেখতে পারেন ।


সিভি 2 পাইথন ইন্টারফেসটি সংকলন এবং ইনস্টল করা হবে যদি আপনি উত্স থেকে ওপেনসিভি নির্মাণ করেন। আপনি যদি লিনাক্স বা অন্যান্য ওএসের জন্য বাইনারি প্যাকেজ ব্যবহার করেন তবে আপনার ওএস / বিতরণ ডকুমেন্টেশনের সাথে পরামর্শ করা উচিত। সহায়তার জন্য goo.gl/MUjXi দেখুন ।
এইচ।

4
@ ফ্রেমস্টার: এই লিঙ্কে সিভি 2-র জন্য ইনস্টলেশন প্রক্রিয়াটি দেখুন: opencvpython.blogspot.in/2012/05/…
আবিদ রহমান কে

আবিদ এর উত্তর দুর্দান্ত। আরও একটি বিষয় যুক্ত করতে: আমি পাইথন ৩.x এর সাথে একটি প্রকল্প করেছি এবং আমি ওপেনসিভিতে অ্যাক্সেস পাওয়ার একমাত্র উপায় ছিল সিটিপেস_ওপেনসিভি এবং আসল ওপেনসিভি 1.0 এর মাধ্যমে through এটি ওপেনসিভি প্রাক 1.1 এর জন্য সমর্থন দাবি করে তবে আমি কখনই এটি কাজ করি নি। এটির সাহায্যে আপনি মূল সিভিসেট্রোই ইত্যাদি ব্যবহার করবেন সি-টাইপ ইন্টারফেস।
কোবেজহান

আপনি চাইলে এটি পিপ দিয়ে ইনস্টল করতে পারেন। পড়া এখানে বা একটি করুন:pip install opencv-python
টিমো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.