私の画面は1280 x 800ですが、6400××3200の画像があります。したがって、画像は表示専用にサイズ変更する必要があります。 PythonとOpenCV 2.4.9を使用しています。 OpenCV Documentation によると、
画面解像度よりも大きい画像を表示する必要がある場合は、imshowの前にnamedWindow( ""、WINDOW_NORMAL)を呼び出す必要があります。
それが私がやっていることですが、画像は画面に適合せず、大きすぎるため一部のみが表示されます。 cv2.resizeWindowも試しましたが、違いはありません。
import cv2
cv2.namedWindow("output", cv2.WINDOW_NORMAL) # Create window with freedom of dimensions
# cv2.resizeWindow("output", 400, 300) # Resize window to specified dimensions
im = cv2.imread("earth.jpg") # Read image
cv2.imshow("output", im) # Show image
cv2.waitKey(0) # Display the image infinitely until any keypress
私は自動解決策(画面に自動的に適合する)を期待していましたが、サイズ変更でも問題は解決します。
import cv2
cv2.namedWindow("output", cv2.WINDOW_NORMAL) # Create window with freedom of dimensions
im = cv2.imread("earth.jpg") # Read image
imS = cv2.resize(im, (960, 540)) # Resize image
cv2.imshow("output", imS) # Show image
cv2.waitKey(0) # Display the image infinitely until any keypress
これを試して:
image = cv2.imread("img/Demo.jpg")
image = cv2.resize(image,(240,240))
image
のサイズが変更されました。それを表示すると、240x240でレンダリングされます。
Opencvでは、cv.namedWindow()はユーザーが決定したとおりにウィンドウオブジェクトを作成するだけで、元の画像のサイズを変更しません。 cv2.resize(img、resolution)を使用して問題を解決できます。
image = cv2.imread("740*411.jpg")
cv2.imshow("image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
ここでは、サイズ変更後、100 * 200の解像度の画像が表示されます。解像度パラメーターは最初に列を使用し、次に行であることに注意してください。
image = cv2.imread("740*411.jpg")
image = cv2.resize(image, (200, 100))
cv2.imshow("image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()