সেখানে
opencv
(ওপেনসিভি লোকের পাঠাগারটি),cv
(ওপেনসিভি ছেলেরা থেকে পুরানো গ্রন্থাগার) এবংpyopencv
পূর্বসূরীর সাথেctypes-opencv
।
প্রধান পার্থক্যগুলি কী এবং আমার কোনটি ব্যবহার করা উচিত?
সেখানে
opencv
(ওপেনসিভি লোকের পাঠাগারটি), cv
(ওপেনসিভি ছেলেরা থেকে পুরানো গ্রন্থাগার) এবংpyopencv
পূর্বসূরীর সাথে ctypes-opencv
।প্রধান পার্থক্যগুলি কী এবং আমার কোনটি ব্যবহার করা উচিত?
উত্তর:
আনুষ্ঠানিকভাবে, ওপেনসিভি দুটি ধরণের পাইথন ইন্টারফেস প্রকাশ করে 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
মডিউলটির জন্য ইনস্টলেশন পদ্ধতিটি দেখতে পারেন ।