簡體   English   中英

如何在openCV中將灰度圖像加載為numpy數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM