小编gan*_*kar的帖子

如何在不损失分辨率的情况下将 RAW 图像文件格式读入 OpenCV?

我正在尝试将 Nikon '.NEF' 文件导入 OpenCV。“.NEF”是尼康相机拍摄的照片的 RAW 文件格式的文件扩展名。当我在Mac上以预览方式打开该文件时,我看到分辨率为6000 x 4000,并且图片非常清晰。然而,当我将其导入 OpenCV 时,我只能看到 120 x 160(RGB 通道为 3)个数据点,这会导致分辨率的大幅损失。

我的理解是,NumPy 数组中有 120 x 160 个像素,存储有关 OpenCV 像素的信息。我尝试使用 -1 作为 IMREAD_UNCHANGED 标志,但许多像素被遗漏,图像质量受到很大影响。

供您参考,这是我的代码:

# first Jupyter block
img = cv2.imread('DSC_1051.NEF', -1)
img.shape
Run Code Online (Sandbox Code Playgroud)

执行img.shape回报 (120, 160, 3)。

# second Jupyter block
cv2.namedWindow("Resize", cv2.WINDOW_NORMAL)
cv2.resizeWindow("Resize", 1000, 700)
  
# Displaying the image
cv2.imshow("Resize", img)

cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

问题摘要:

  • 原始图像形状为 (6000, 4000)
  • 打开 CV 导入 (120, 160),导致分辨率损失较大
  • 使用 IMREAD_UNCHANGED 标志不会导致 OpenCV 导入图像中的所有像素,从而导致执行时图像质量下降cv2.imshow()

我的问题:如何使用 …

python opencv image image-processing rawimage

1
推荐指数
1
解决办法
1089
查看次数

标签 统计

image ×1

image-processing ×1

opencv ×1

python ×1

rawimage ×1