簡體   English   中英

matplotlib的pcolormesh引發ValueError:太多值無法解包

[英]matplotlib's pcolormesh throws ValueError: too many values to unpack

我有一個要使用pcolormesh顯示的圖像,但我不太了解它應該如何正常工作。 我具有某種顏色的X和相應的Y,但是如果我在pcolormesh輸入一個普通數組作為C, pcolormesh出現錯誤。

我的代碼:

# load image
img = cv2.imread('Distorted_resized_50.jpg')
img_array = np.asarray(img)
height, width, channels = img.shape
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# create vector matrix
U, V = np.meshgrid(range(gray_img.shape[1]),
                   range(gray_img.shape[0]))
UV = np.vstack((U.flatten(),
                V.flatten())).T

H, mask = cv2.findHomography(UV_cp, XYZ_gcp)
UV_warped = cv2.perspectiveTransform(np.array([UV]).astype(np.float32), H)
UV_warped = UV_warped[0]
UV_warped = UV_warped.astype(np.int)
X_warped = UV_warped[:,0].reshape((height, width))
Y_warped = UV_warped[:,1].reshape((height, width))

fig, axs = plt.subplots(figsize=(15,10))
axs.pcolormesh(X_warped, Y_warped, img_array)

有人可以幫助我嗎? 網站上的解釋對我來說不是很清楚。 一切正常,直到fig, axs = plt.subplots(figsize=(15,10))

追溯:

Traceback (most recent call last):
  File "C:\Users\Yorian\Desktop\TU\Stage Shore\python_files\Rectificatie dmv foto thuis\rectify.py", line 53, in <module>
    ax.pcolormesh(X_warped, Y_warped, img_array)
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 7734, in pcolormesh
X, Y, C = self._pcolorargs('pcolormesh', *args, allmatch=allmatch)
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 7350, in _pcolorargs
numRows, numCols = C.shape
ValueError: too many values to unpack

我最近遇到了一個類似的問題,並且在不了解更多信息的情況下,我猜測問題是您有一個xdim,由ydim by 3 array, plt.pcolormesh期望一個2d標量值數組,其中您有r的值, g和b(介於0和255之間)。

話雖如此,您可以做一些事情:

以灰度顯示圖像,首先通過skimage.color.rgb2grey(image)轉換圖像, skimage.color.rgb2grey(image)使用pcolormesh和cmap='binary'繪圖

或使用plt.imshow繪圖,並按照本文中的建議使用kwarg=extent Matplotlib:如何使imshow從其他numpy數組讀取x,y坐標?

暫無
暫無

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

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