সুচিপত্র:

OpenCV ব্যবহার করে সহজ রঙ-সনাক্তকরণ: 6 টি ধাপ
OpenCV ব্যবহার করে সহজ রঙ-সনাক্তকরণ: 6 টি ধাপ

ভিডিও: OpenCV ব্যবহার করে সহজ রঙ-সনাক্তকরণ: 6 টি ধাপ

ভিডিও: OpenCV ব্যবহার করে সহজ রঙ-সনাক্তকরণ: 6 টি ধাপ
ভিডিও: হ্যাক হতে পারে আপনার গোপন তথ্য! | TrueCaller | Risk Behind Caller-identification App | Somoy TV 2024, নভেম্বর
Anonim
OpenCV ব্যবহার করে সহজ রঙ-সনাক্তকরণ
OpenCV ব্যবহার করে সহজ রঙ-সনাক্তকরণ

ওহে! আজ আমি OpenCV এবং পাইথন ব্যবহার করে একটি লাইভ ভিডিও থেকে একটি রঙ সনাক্ত করার একটি সহজ পদ্ধতি দেখাতে যাচ্ছি।

মূলত আমি শুধু পরীক্ষা করব প্রয়োজনীয় রঙ ব্যাকগ্রাউন্ড ফ্রেমে আছে কি না এবং ওপেনসিভি মডিউল ব্যবহার করে আমি সেই অঞ্চলটি মুখোশ করব এবং একই সাথে ফ্রেম প্রদর্শন করব।

ধাপ 1: হেডার ফাইল

হেডার ফাইল
হেডার ফাইল

এখন এখানে আমি cv2 এবং NumPy নামে দুটি হেডার ফাইল ব্যবহার করেছি। মূলত সিভি 2 হল ওপেনসিভি লাইব্রেরি যা কোডগুলিতে কমান্ড ব্যবহার করার সময় গুরুত্বপূর্ণ সমস্ত সি ++ ফাইল লোড করে (এতে সমস্ত সংজ্ঞা রয়েছে)।

এবং নম্পি একটি পাইথন লাইব্রেরি যা একটি বহুমাত্রিক অ্যারে সংরক্ষণের জন্য অপরিহার্য। আমরা আমাদের কালার রেঞ্জ কো-অর্ডিনেট সংরক্ষণ করতে ব্যবহার করব।

এবং npy হিসাবে numpy মূলত আমাদের কোডকে nmpy এর পরিবর্তে np ব্যবহার করে কিছুটা ছোট করতে সাহায্য করে।

ধাপ 2: ভিডিও ক্যাপচার করা

ভিডিও ক্যাপচার করা
ভিডিও ক্যাপচার করা

পাইথন ব্যবহার করার সময় এটি বেশ সহজ। এখানে আমাদের শুধু ভিডিও রেকর্ডার চালু করতে হবে যাতে এটি ফ্রেম রেকর্ড করা শুরু করতে পারে।

এখন ভিডিও ক্যাপচারের ভিতরের মান ক্যামেরা নির্দেশ করে, আমার ক্ষেত্রে ক্যামেরা আমার ল্যাপটপের সাথে সংযুক্ত, তাই 0।

আপনি সেকেন্ডারি ক্যামেরার জন্য একইভাবে যেতে পারেন ইত্যাদি। VideoCapture এর জন্য বস্তু তৈরি করে।

ধাপ 3: ফ্রেম ক্যাপচার করা এবং রঙ নির্ধারণ করা

ফ্রেম ক্যাপচার করা এবং রঙ নির্ধারণ করা
ফ্রেম ক্যাপচার করা এবং রঙ নির্ধারণ করা

এখন এখানে আমাদের এমন কিছু করতে হবে যাতে আমরা ভিডিওটির তাত্ক্ষণিক ফ্রেমটি ক্যাপচার করতে পারি যা আমাদের ছবিটি বের করতে সাহায্য করবে এবং আমরা প্রয়োজন অনুযায়ী কাজ করতে পারি।

"while" লুপ আমাদের প্রয়োজনীয় সময় অনুযায়ী লুপ চালাতে সাহায্য করবে। এখন "_, ফ্রেম = ক্যাপ। "cap.read () একটি বুলিয়ান ভেরিয়েবল এবং ফ্রেমটি সঠিকভাবে পড়লে সত্য ফিরে আসে এবং যদি আপনি কোন ফ্রেম না পান তবে এটি কোন ত্রুটি দেখাবে না, আপনি কেবল কিছুই পাবেন না।

এখন লাইন 11 এবং লাইন 12 মূলত রঙের পরিসর নির্ধারণ করে যা আমাদের সনাক্ত করতে হবে। এই জন্য, আমি নীল রং ব্যবহার করেছি।

আপনি যে কোনও রঙের সাথে এগিয়ে যেতে পারেন তার জন্য আপনাকে কেবল সেই নির্দিষ্ট রঙের জন্য BGR মান টাইপ করতে হবে। অস্পষ্ট অ্যারে ব্যবহার করে দুটি অ্যারে সংজ্ঞায়িত করা ভাল কারণ বাস্তব জগতে একটি নির্দিষ্ট রঙ সনাক্ত করা আমাদের উদ্দেশ্য পূরণ করবে না বরং আমরা নীল রঙের একটি পরিসীমা নির্ধারণ করব যাতে এটি পরিসরের মধ্যে সনাক্ত করে।

এই জন্য, আমি নিম্ন BGR মান এবং উপরের BGR মান সংরক্ষণ দুটি ভেরিয়েবল সংজ্ঞায়িত করেছি।

ধাপ 4: মাস্কিং এবং নিষ্কাশন

মাস্কিং এবং নিষ্কাশন
মাস্কিং এবং নিষ্কাশন

এখন এখানে আসে ফ্রেম মাস্ক করা এবং ফ্রেমের রঙ বের করা। আমি মাস্কিং করতে ওপেনসিভিতে লাইব্রেরিতে উপস্থিত পূর্বনির্ধারিত কমান্ডগুলি ব্যবহার করেছি। মূলত মাস্কিং হল ফ্রেমের কিছু অংশ অপসারণের প্রক্রিয়া, যেমন আমরা পিক্সেলগুলি সরিয়ে ফেলব যার রঙ BGR মান যা সংজ্ঞায়িত রঙের পরিসরে থাকে না এবং এটি cv2.inRange দ্বারা সম্পন্ন হয়। পরবর্তীতে, আমরা পিক্সেল মানগুলির উপর নির্ভর করে মুখোশযুক্ত ছবিতে রঙ পরিসীমা প্রয়োগ করি এবং এর জন্য, আমরা cv2.bitwise_and ব্যবহার করব, এটি কেবল মুখোশযুক্ত অঞ্চলে রঙগুলি নির্ধারণ করবে এবং মুখোশ এবং রঙ পরিসরের মানগুলির উপর নির্ভর করে।

Cv2 এর জন্য লিঙ্ক। bitwise_and:

ধাপ 5: অবশেষে প্রদর্শন

অবশেষে প্রদর্শন!
অবশেষে প্রদর্শন!

এখানে আমি মৌলিক cv2.imshow () ব্যবহার করেছি প্রতিটি ফ্রেমের জন্য ছবি হিসেবে প্রদর্শনের জন্য। যেহেতু আমার কাছে ভেরিয়েবলে ফ্রেম ডেটা সংরক্ষিত আছে তাই আমি তাদের imshow () এ পুনরুদ্ধার করতে পারি। এখানে আমি আসল, মুখোশযুক্ত এবং রঙিন তিনটি ফ্রেম প্রদর্শন করেছি।

এখন আমাদের while লুপ থেকে বেরিয়ে আসতে হবে। এর জন্য, আমরা কেবল cv2.wait. Key () প্রয়োগ করতে পারি। মূলত এটি সাড়া দেওয়ার আগে অপেক্ষা করার সময় বলে। সুতরাং যদি আপনি 0 পাস করেন তবে এটি অসীম অপেক্ষা করবে এবং 0xFF আর্কিটেকচারকে 64 বিট বলে। "ord ()" অক্ষরটি নির্দিষ্ট করে যেটি চাপলে ব্রেক কমান্ডটি যদি ব্লক হবে এবং এটি লুপ থেকে বেরিয়ে আসবে।

তারপর cap.release () ভিডিও রেকর্ডার বন্ধ করে দেয় এবং cv2.destroyAllWindows () সব খোলা উইন্ডো বন্ধ করে দেয়।

যদি আপনার কোন সমস্যা থাকে, দয়া করে আমাকে জানান।

সোর্স কোডের লিঙ্ক:

প্রস্তাবিত: