imencode gray python image opencv imshow

python - gray - imread() opencv



Python-OpenCV-imread-VisualizaciĆ³n de imagen (3)

Actualmente estoy trabajando para leer una imagen y mostrarla en una ventana. Lo he hecho con éxito, pero al mostrar la imagen, la ventana solo me permite ver una parte de la imagen completa. Intenté guardar la imagen después de cargarla y se guardó toda la imagen. Así que estoy bastante seguro de que está leyendo la imagen completa.

imgFile = cv.imread(''1.jpg'') cv.imshow(''dst_rt'', imgFile) cv.waitKey(0) cv.destroyAllWindows()

Imagen:

Captura de pantalla:


En openCV, cuando intenta mostrar una imagen de gran tamaño o una imagen más grande que su resolución de pantalla, obtiene la pantalla recortada.
Para ver la imagen en la ventana de su elección, openCV recomienda utilizar la ventana con nombre denominada documentación de Windows
cv.NamedWindow(name, flags=CV_WINDOW_AUTOSIZE) donde cada ventana está relacionada con el contenedor de imágenes por el nombre arg, asegúrese de usar el mismo nombre
p.ej:

import cv2 frame = cv2.imread(''1.jpg'') cv2.NamedWindow("Display 1", flags=CV_WINDOW_AUTOSIZE) cv2.resizeWindow("Display 1", 300, 300) cv2.imshow("Display 1", frame)


Parece que la imagen es demasiado grande y la ventana simplemente no se ajusta a la pantalla. Cree una ventana con el indicador cv2.WINDOW_NORMAL , lo hará escalable. Luego puedes redimensionarlo para que se ajuste a tu pantalla de esta manera:

from __future__ import division import cv2 img = cv2.imread(''1.jpg'') screen_res = 1280, 720 scale_width = screen_res[0] / img.shape[1] scale_height = screen_res[1] / img.shape[0] scale = min(scale_width, scale_height) window_width = int(img.shape[1] * scale) window_height = int(img.shape[0] * scale) cv2.namedWindow(''dst_rt'', cv2.WINDOW_NORMAL) cv2.resizeWindow(''dst_rt'', window_width, window_height) cv2.imshow(''dst_rt'', img) cv2.waitKey(0) cv2.destroyAllWindows()

De acuerdo con la documentación de OpenCV, el indicador CV_WINDOW_KEEPRATIO debería hacer lo mismo, pero no lo hace y su valor ni siquiera se presenta en el módulo de Python.


Esto te puede ayudar

namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display. imshow( "Display window", image ); // Show our image inside it.