logo

Зміна розміру зображення за допомогою OpenCV | Python

Зміна розміру зображення стосується масштабування зображень. Масштабування стає в нагоді в багатьох програмах обробки зображень і машинного навчання. Це допомагає зменшити кількість пікселів із зображення, і це має кілька переваг, напр. Це може скоротити час навчання нейронної мережі, оскільки чим більше кількість пікселів у зображенні, тим більше кількість вхідних вузлів, що, у свою чергу, збільшує складність моделі.
Це також допомагає збільшувати зображення. Багато разів нам потрібно змінити розмір зображення, тобто або зменшити його, або збільшити відповідно до вимог щодо розміру. OpenCV надає нам кілька методів інтерполяції для зміни розміру зображення.

Вибір методу інтерполяції для зміни розміру:



  • cv2.INTER_AREA: використовується, коли нам потрібно зменшити зображення.
  • cv2.INTER_CUBIC: це повільно, але ефективніше.
  • cv2.INTER_LINEAR: це в основному використовується, коли потрібне масштабування. Це типова техніка інтерполяції в OpenCV.

Синтаксис: cv2.resize(джерело, dsize, dest, fx, fy, інтерполяція)

едіт мак гірш

Параметри:

    джерело: масив вхідних зображень (одноканальний, 8-розрядний або з плаваючою крапкою) dsize: розмір вихідного масиву dest: вихідний масив (схожий на розміри та тип масиву вхідних зображень) [необов’язково] fx: коефіцієнт масштабування вздовж горизонтальна вісь [необов'язково] fy: коефіцієнт масштабування вздовж вертикальної осі [необов'язково] інтерполяція: один із наведених вище методів інтерполяції [необов'язково]

Нижче наведено код для зміни розміру:



Python3






import> cv2> import> numpy as np> import> matplotlib.pyplot as plt> image>=> cv2.imread(r>'D:simsebsim21EB-ML-06-10-2022-Test-Output-15PERFORATIONOverkillFailBlister 1 2022-03-12 12-59-43.859 T0 M0 G0 3 PERFORATION Mono.bmp'>,>1>)> # Loading the image> half>=> cv2.resize(image, (>0>,>0>), fx>=> 0.1>, fy>=> 0.1>)> bigger>=> cv2.resize(image, (>1050>,>1610>))> stretch_near>=> cv2.resize(image, (>780>,>540>),> >interpolation>=> cv2.INTER_LINEAR)> Titles>=>[>'Original'>,>'Half'>,>'Bigger'>,>'Interpolation Nearest'>]> images>=>[image, half, bigger, stretch_near]> count>=> 4> for> i>in> range>(count):> >plt.subplot(>2>,>2>, i>+> 1>)> >plt.title(Titles[i])> >plt.imshow(images[i])> plt.show()>

підручник c#

>

>

Вихід:

Актор Реха

Примітка: Під час використання функції cv2.resize() слід пам’ятати про те, що кортеж, переданий для визначення розміру нового зображення ((1050, 1610) у цьому випадку), дотримується порядку (ширина, висота) на відміну від очікуваного ( висота ширина).