[英]How to load grayscale image as numpy array in openCV
我有96x96像素圖像作為numpy數組。 事情是我不知道如何使opencv加載此ndarray和檢測面部。
img = cv2.imread(X)
這條線不起作用。 我得到這個錯誤
TypeError: expected string or Unicode object, numpy.ndarray found
X是輸入圖像數組(灰度)
好的,現在可以使用它了
img = X[k].reshape(96,96)
但是我的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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.