You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python读取尼康D5600相机中的图像文件

提问:Windows 10下Python无法直接读取USB连接的尼康D5600相机内的照片

如果我有遗漏内容或者不符合格式规范的地方请见谅,这是我首次在这类论坛发帖。
我目前将尼康D5600用于一个极其基础的图像分析方案中,希望无需每次运行测试都手动传输文件就能直接调用相机内的图像,但我在文件访问环节遇到了问题。
需要明确的是,我并不想捕获视频流的截图;我知道这一方案可行,但视频模式下的分辨率会低1/3左右,无法满足我的应用需求。
最开始我将相机通过USB连接到我的Windows 10台式机,尝试用Windows属性页给出的文件路径(我替换了路径中的斜杠)调用图像:
img = cv2.imread("This PC/D5600/Removable storage/DCIM/314D5600/CFW_0031.jpg")
但这一操作没有成功。
我将该图片复制到其他磁盘后测试了调用命令,确认命令本身没有问题:
img = cv2.imread("D:/CFW_0031.jpg")
这一次调用成功。
我推测问题大概率出在路径中的“This PC”部分,我读过一些2009年左右关于MTP等协议的旧帖,但我不确定这款相机是否使用该协议,也不知道如果适用该协议的话要如何入手操作。
我也尝试过使用pygrabber(我认为它是direct show的封装,可能我的术语表述有误)通过Python控制相机,但是也没有成功,不过有意思的是我成功控制了我的电脑摄像头。
最后我尝试按照为USB连接的数码相机分配盘符的方法操作,但发现磁盘管理器的磁盘列表中没有该相机,也有可能是我操作错了,但我没找到问题出在哪里。

针对Cristoph的评论补充

  • 我只需要能在Python中使用这些图像文件即可,一般是用opencv,我想这应该属于读取文件的范畴?
  • 我附上了文件资源管理器中“This PC”页面的截图,相机在设备和驱动器分类下显示,但没有分配盘符。

解决方案

你遇到的问题核心是尼康D5600默认通过MTP(媒体传输协议)和电脑连接,这类协议下的设备不会被系统识别为普通块存储设备,没有盘符,所以常规的文件路径访问方式无效,按优先级给你三个可行方案:

方案1:修改相机USB连接模式(最省事)

直接在尼康D5600的设置菜单中找到「USB连接选项」,将默认的MTP/PTP模式改为「大容量存储(MSC)」模式,修改后重新连接电脑,相机会被识别为普通U盘,自动分配盘符,直接用对应盘符下的文件路径调用cv2.imread即可正常读取。

方案2:使用MTP协议适配的Python库读取

如果不想修改相机设置,可以直接调用支持MTP协议的Python库直接读取文件内容到内存,无需落地到本地磁盘:

  1. 先安装依赖库:
    pip install pymtp numpy opencv-python
  2. 参考代码示例:
import cv2
import numpy as np
from pymtp import MTP

# 初始化并连接MTP设备
mtp_dev = MTP()
mtp_dev.connect()

# 遍历设备内所有文件匹配目标
target = None
for file in mtp_dev.get_filelisting():
    if file.filename == "CFW_0031.jpg":
        target = file
        break

if target:
    # 读取文件内容到内存
    file_buf = mtp_dev.get_file_to_pointer(target.item_id, target.filesize)
    # 转换为OpenCV可用的图像格式
    img_arr = np.frombuffer(file_buf.read(), np.uint8)
    img = cv2.imdecode(img_arr, cv2.IMREAD_COLOR)
    # 后续正常处理图像即可
    print("图像读取成功,尺寸:", img.shape)

# 断开设备连接
mtp_dev.disconnect()

方案3:工具映射MTP设备为盘符

可以使用轻量工具MTPdrive将MTP协议的相机临时映射为本地盘符,映射完成后直接用常规路径读取即可,无需修改相机设置也不用改代码。

注意事项

  • 所有操作前确保相机处于开机状态,USB连接稳定,没有被其他程序占用
  • 如果使用pymtp时出现设备识别失败的问题,可以先安装尼康官方的PC端驱动后再重试

内容的提问来源于stack exchange,提问作者derekburm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:36:04