opencv resize изменение значений RGB - PullRequest
0 голосов
/ 18 июня 2020

При изменении размера opencv я замечаю, что изображение становится размытым после изменения размера вверх и вниз. Есть ли способ устранить размытость изображения после изменения размера? «Я считаю, что эта проблема связана с проблемами выборки ... 2 изображения до zoomreset и после zoomreset представлены здесь для справки

Изображение 2 показывает изменение цвета около solid цвет

def zoomreset(self):

    imagergb=self.bae.image
    originalimage=cv2.imread('original.png')
    imagergb.save('resetzoomed.png')
    cvresetzoomimage=cv2.imread('resetzoomed.png',cv2.IMREAD_UNCHANGED)
    # pixels_x=self.bae.image.width
    # pixels_y = self.bae.image.height
    pixels_x=self.orgwdth
    pixels_y=self.orghght
    dim=(int(pixels_x),int(pixels_y))
    cvresetzoom=cv2.resize(cvresetzoomimage,dim,interpolation=cv2.INTER_AREA)
    # cv2.imshow("Resized Image", cvresized)
    cv2.imwrite('resetzoomedimage.png',cvresetzoom)
    self.bae.image=Image.open('resetzoomedimage.png')
    self.tkinter_image = PIL.ImageTk.PhotoImage(self.bae.image)
    self.show_image()
    self.image_canvas.configure(scrollregion = self.image_canvas.bbox("all"))
    self.image_canvas.config(width=int(pixels_x), height=int(pixels_y), scrollregion=(0, 0, int(pixels_x), int(pixels_y)))

1 Ответ

0 голосов
/ 19 июня 2020

Если вы уменьшите масштаб изображения, вы потеряете значения пикселей, независимо от метода интерполяции. Опять же, если вы попытаетесь масштабировать изображение с существующим значением алгоритма пикселей для интерполяции.

Вы можете изучить алгоритмы интерполяции (Ближайший сосед, Inter_linear, ..), как они работают, для лучшего понимания.

...