【问题标题】:How to convert Mat from opencv to caffe format如何将 Mat 从 opencv 转换为 caffe 格式
【发布时间】:2015-06-13 04:20:42
【问题描述】:

我正在使用 opencv 从我的相机中裁剪人脸。然后我用 caffe 来预测图像属于男性还是女性。我有一个从静态图像加载图像的原始代码。但是,我想使用相机中的图像。这是caffe中的原始代码

    model = caffe.Classifier(...)
    image_path = './static_image.jpg'
    input_image = caffe.io.load_image(image_path )
    prediction =model.predict([input_image]) 

现在,我将使用opencv捕获帧并调用predict方法

  val, image = cap.read()    
  image = cv2.resize(image, (320,240))
  gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  faces = face_cascade.detectMultiScale(gray, 1.3, 5, minSize=(30,30))
  for f in faces:
      x,y,w,h = f
      cv2.rectangle(image, (x,y), (x+w,y+h), (0,255,255))        
       face_image = gray[y:y+h, x:x+w]
       resized_img = cv2.resize(face_image, (45,45))/255.

resized_image 后,我会将其转换为函数等 caffe 类型

def format_frame(self,frame):
    img = frame.astype(np.float32)/255.
    img = img[...,::-1]
    return img

但是,当我调用该函数时。我不知道什么是自我。你能帮我解决它吗?

感谢您的帮助!

【问题讨论】:

  • user8430,你找到解决这个问题的方法了吗?我也有这个问题。
  • 我找到了。但是,我删除了它。很难再找到它。对不起。但是,我记得数组到基准是很好的解决方案

标签: python python-2.7 opencv caffe


【解决方案1】:

您可以在 caffe.io 中使用 CVMatToDatum 函数。更多信息在这里:https://github.com/BVLC/caffe/blob/master/src/caffe/util/io.cpp

编辑:我认为您可以使用 array_to_datum from https://github.com/BVLC/caffe/blob/master/python/caffe/io.py, 虽然可能需要先将 Mat 转换为 ndarray

【讨论】:

  • python支持吗?我正在使用 python 来完成我的任务
  • 所以,就我而言,我将使用 resized_img= resized_img.swapaxes(0, 2).swapaxes(1, 2) datum_image = caffe.io.array_to_datum(resized_img, 0)
猜你喜欢
  • 2015-11-19
  • 2015-10-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2017-12-15
  • 1970-01-01
  • 2015-10-09
  • 2016-10-28
相关资源
最近更新 更多