簡體   English   中英

使用 PySpin(FLIR) 調整 BayerRG8 圖像的大小將其更改為灰度

[英]Resizing BayerRG8 image using PySpin(FLIR) changes it to grayscale

我正在使用 FLIR Blackfly S BFS-PGE-31S4C 收集視頻並使用 python 編寫視頻,使用 PySpin 包。 我想添加一個實時視頻預覽,這樣我就可以看到正在錄制的內容,並想縮小圖像的大小,這樣我就可以輕松地在屏幕上看到整個幀。 以下是我當前的代碼:

im = cam.GetNextImage(PySpin.EVENT_TIMEOUT_INFINITE if wait else PySpin.EVENT_TIMEOUT_NONE)
im = im.GetNDArray()
resize_factor = 2

cv2.imshow("test1",cv2.cvtColor(im, cv2.COLOR_BAYER_RG2RGB))
cv2.waitKey(0)

im = im[::resize_factor,::resize_factor]

cv2.imshow("test2",cv2.cvtColor(im, cv2.COLOR_BAYER_RG2RGB))
cv2.waitKey(0)

攝像機以 Bayer RG8 格式記錄。 PySpin 有一個 .GetNDArray() 方法,可以將圖像轉換為 numpy 數組(我相信仍然是bayer RG8 格式,因為值是uint8 )。 當我在調整大小之前查看 numpy 數組的類型(type(im),type(im[0]),type(im[0][0]))時,它是一個包含numpy.uint8值的2D numpy.ndarray ,在我調整圖像大小后也是如此。 當我顯示第一張圖像(轉換前)時,它是彩色的。 當我顯示第二張調整大小的圖像時,它是灰度的,只是忽略了 cv2.cvtColor() 調用。

我認為這可能與原始圖像的 BayerRG8 格式有關,但不確定為什么調整大小會以這種方式影響它,因為我對該圖像格式不太了解。 任何關於我的問題的建議或改進問題的建議都將不勝感激!

調整拜耳圖像的大小非常棘手。 請記住,顏色分量是交錯的:

R G R G R G ...
G B G B G B ...
R G R G R G ...

您的簡單抽取不會尊重像素值。 如果你抽取 2,你最終會得到 R 平面。 您應該使用圖像庫來調整大小,而不僅僅是抽取,並且可能應該首先轉換為 RGB。

暫無
暫無

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

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