【问题标题】:How to load grayscale image as numpy array in openCV如何在openCV中将灰度图像加载为numpy数组
【发布时间】:2014-12-31 01:29:44
【问题描述】:

我将 96x96 像素图像作为 numpy 数组。问题是我不知道如何让 opencv 加载这个 ndarray 并检测人脸。

img = cv2.imread(X)

这条线不起作用。我得到这个错误

TypeError: expected string or Unicode object, numpy.ndarray found

X是输入图像数组(灰度)

【问题讨论】:

  • imread 需要一个文件名。如果 X 已经是一个 numpy 数组,为什么不按原样使用它?
  • 这就是我所做的,它正在抛出上述错误。
  • 那么你必须向我们展示那个代码。

标签: python opencv


【解决方案1】:

好的,现在可以使用它了

img = X[k].reshape(96,96)

但 i opencv 在输出时显示黑色图像。根据要求,这是一段代码。

import numpy as np
import cv2, cv

import numpy as np
import pandas as pd
import pylab as pl
from skimage import transform
from numpy import ravel

import pylab as pl

from sklearn import linear_model, cross_validation
from sklearn.svm import SVR
from sklearn.decomposition import PCA
from sklearn.neural_network import BernoulliRBM
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor

df = pd.read_csv('/users/prabhubalakrishnan/Desktop/training.csv', header=0)

x = df['Image'][:5].values


face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

X = []

for k in xrange(len(x)):
    img = np.fromstring(x[k], dtype = np.uint8, sep=' ', count=96*96)
    X.append ( ravel(transform.resize (img.reshape(96,96) , (96,96))) )

'''
for k in xrange(len(X)):
 pl.imshow(X[k].reshape(96,96),cmap=pl.cm.gray)
 pl.show()
'''

X = np.array(X)
X = X.astype('uint8')

print 'X:', X.shape, X.dtype

pl.ion()


for k in xrange(len(X)):

    img = X[k].reshape(96,96)

    faces = face_cascade.detectMultiScale(img, 1.03, 5)

    for (x,y,w,h) in faces:
     cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
     roi_color = img[y:y+h, x:x+w]

    print 'Image',img
    print 'Faces',faces
    cv2.namedWindow("img", cv2.CV_WINDOW_AUTOSIZE)
    cv2.imshow('img',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

【讨论】:

    猜你喜欢
    • 2014-07-30
    • 1970-01-01
    • 2021-04-02
    • 2019-02-13
    • 2012-06-21
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多