Flip کردن تصویرها و ویدیوها در OpenCV

Flip کردن اشاره به قرینه کردن تصویر در راستای افقی (Vertical) و عمودی (Horizontal) دارد. استفاده از Flip همانند قرار دادن یك آینه در جلوی تصویر عمل می كند. مثلاً در هنگام قرینه كردن عمودی تصویر هر چیزی در سمت چپ به قسمت راست منتقل شده و بر عكس هر چیزی كه در سمت راست تصوير است به سمت چپ منتقل می شود. و در هنگام قرینه كردن افقی تصویر، هر چیزی در بالای تصویر است به پایین و برعكس هر چیزی كه در پایین تصوير است به بالای آن منتقل می شود. (منبع)

آرگومان اول متد ()flip نام متغیری است که به ماتریس تصویر اصلی اشاره دارد و آرگومان دوم می تواند یکی از مقدار صفر، 1 و 1- را دریافت کند. اگر آرگومان دوم عدد صفر باشد، تصویر به صورت عمودی قرینه می شود و اگر آرگومان دوم عدد 1 باشد، پس تصویر به صورت افقی (Horizontally) قرینه می شود. اگر آرگومان دوم عدد 1- باشد، پس تصویر ۱۸۰ درجه قرینه می شود، به عبارت دیگر قرینه سازی عمودی و افقی همزمان رخ می دهد.

۱ – قرینه سازی افقی

۲ – قرینه سازی عمودی

۳ – قرینه سازی ۱۸۰ درجه

در کد زیر می خواهیم فریم های دوربین رایانه را به صورت عمودی بچرخانیم، پس باید آرگومان دوم را برابر با عدد ۱ در نظر بگیریم. توجه کنید که در خط ۱۲ متغیر frame به عنوان آرگومان اول به متد ()flip فرستاده شده است و سپس نتیجه اعمال متد ()flip مجدد درون متغیر frame ذخیره شده است. برای آزمایش عملکرد آن، لطفا عددهای صفر و 1- را نیز امتحان کنید.

متد ()transpose

ماتریس ترانهاده در جبر خطی ترانهاده یک ماتریس مانند A ماتریس دیگری است که با نماد AT (به شکل‌های دیگر A′، Atr یا tA نوشته می‌شود) مشخص شده و نسبت به ماتریس A دارای تفاوت با تعریف معادله زیر است. به عبارت دیگر باید هنگام نوشتن ترانهاده هر ماتریسی سطرهای ماتریس را به شکل ستون نوشت و ستون‌های ماتریس را به شکل سطر در واقع یک ماتریس n×m اگر ترانهاده شود یک ماتریس m×n خواهد بود. متد ()transpose در OpenCV همین کار (محاسبه ترانهاده) را بر روی ماتریس تصویر انجام می دهد. از ترکیب متد ()transpose با متد ()flip می توانیم تصویر را به گونه های دیگر بچرخانیم.

۱ – چرخش تصویر به صورت ۹۰ درجه در جهت ساعتگرد

۲ – چرخش تصویر به صورت ۹۰ درجه در جهت پاد ساعتگرد

دانلود سورس کد این مطلب Flip Images