চিত্র থেকে একটি নির্দিষ্ট অংশ আলাদা করতে, আমাদের প্রথমে এলাকাটি সনাক্ত করতে হবে। তারপরে আমাদের সেই এলাকাটিকে মূল চিত্র থেকে অন্য ম্যাট্রিক্সে অনুলিপি করতে হবে। এভাবেই ROI inOpenCV কাজ করে।
এই উদাহরণে, শুরুতে দুটি ম্যাট্রিক্স ঘোষণা করা হয়েছে। এর পরে, 'image_name.jpg' নামের একটি ছবি৷ 'image1'-এ লোড করা হয়েছে৷ ম্যাট্রিক্স পরবর্তী লাইন 'image2=image1 (Rect(100, 100, 120, 120));' বিশেষ মনোযোগ প্রয়োজন। এই লাইনটি ছবির সংজ্ঞায়িত অঞ্চলটি কাটছে এবং 'image2' ম্যাট্রিক্সে সংরক্ষণ করছে।
চিত্রটি দেখায় যে আমরা এখানে 'Rect(100,100,120,120)' কোড দিয়ে কী করেছি। কোডের এই লাইনের মৌলিক রূপ হল 'Rect(x, y,x1) ,y1 )'। এখানে x এবং y আয়তক্ষেত্রের শুরু বিন্দু এবং x1 সংজ্ঞায়িত করে এবং y1 আয়তক্ষেত্রের শেষ বিন্দু প্রতিনিধিত্ব করে। এই মান পরিবর্তন করে, আমরা আয়তক্ষেত্রের আকার পরিবর্তন করতে পারি।
উদাহরণ
নিম্নলিখিত প্রোগ্রামটি ওপেনসিভিতে আগ্রহের অঞ্চলের কাজ প্রদর্শন করে:
#include #include #include using namespace std; using namespace cv; int main() { Mat image1; //Declaring a matrix named 'image1'// Mat image2; //Declaring a matrix named 'image2'// image1 = imread("RGB.png"); //Loading an image name 'image_name.png into image1 matrix// image2 = image1(Rect(100, 100, 120, 120)); //imposing a rectangle on image1// namedWindow("Image_Window1"); //Declaring an window to show actual image// namedWindow("Image_Window2"); //Declaring an window to show ROI// imshow("Image_Window1", image1); //Showing actual image// imshow("Image_Window2", image2); waitKey(0); return 0; }
আউটপুট