簡體   English   中英

使用opencv imread讀取時圖像高度和寬度交換

[英]Image height and width getting swapped when read using opencv imread

當我使用opencv imread函數讀取圖像時,我發現它的高度和寬度被交換為它應該是什么。 就像我的原始圖像是尺寸(610乘406),但在使用opencv :: imread函數讀取時,它的尺寸是406乘610.另外,如果我在將原始圖像傳遞給函數之前將其旋轉,那么也沒有變化。 讀取的圖像仍具有原始尺寸。

請參閱示例代碼和圖像以便澄清:因此,下面我提供了輸入圖像:一個是原始的,第二個是旋轉的(我使用Windows旋轉命令旋轉它,右鍵單擊並選擇“向右旋轉”)。 我得到的兩個圖像的輸出是相同的。 在我看來,旋轉圖像實際上並沒有改變它的形狀。 我是這么認為的,因為當我嘗試將旋轉的圖像放在這里時,它只顯示了它的未旋轉版本(在預覽中)所以,我不得不對它進行屏幕捕獲然后粘貼它這里。

這是代碼:

import cv2
import numpy as np
import sys
import os

image = cv2.imread("C:/img_8075.jpg")
print "image shape: ",image.shape
cv2.imshow("image",image)
cv2.waitKey(0)
image2 = cv2.imread("C:/img_8075_Rotated.jpg")
print "image shape: ",image2.shape
cv2.imshow("image",image2)
cv2.waitKey(0)

我得到的結果是:圖像形狀:(406,610,3)圖像形狀:(406,610,3)兩個圖像。

我無法在這里粘貼輸入/輸出圖片,因為它說你應該有'10聲譽',我剛加入。 任何的意見都將會有幫助。 謝謝!

通常Mat.rows表示圖像的高度,Mat.cols表示圖像的寬度。

我相信你只是把這些慣例搞混了。 可以訪問OpenCV Mat結構(ROW,COLUMN)。

所以一張1920x1080的圖像將是1080 ROWS by 1920 COLUMNS(1080,1920)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM