Fixed facerec_demo.cpp.

This commit is contained in:
Philipp Wagner 2012-05-05 09:16:21 +00:00
parent 70f74b70b7
commit 86524b0e4a

View File

@ -25,6 +25,17 @@
using namespace cv;
using namespace std;
Mat toGrayscale(InputArray _src) {
Mat src = _src.getMat();
// only allow one channel
if(src.channels() != 1)
CV_Error(CV_StsBadArg, "Only Matrices with one channel are supported");
// create and return normalized image
Mat dst;
cv::normalize(_src, dst, 0, 255, NORM_MINMAX, CV_8UC1);
return dst;
}
void read_csv(const string& filename, vector<Mat>& images, vector<int>& labels, char separator = ';') {
std::ifstream file(filename.c_str(), ifstream::in);
if (!file)
@ -79,10 +90,10 @@ int main(int argc, const char *argv[]) {
for (int i = 0; i < min(10, W.cols); i++) {
// get eigenvector #i
Mat ev = W.col(i).clone();
// reshape to original site
Mat grayscale, cgrayscale;
cvtColor(ev.reshape(1, height), grayscale, COLOR_BGR2GRAY);
// reshape to original size AND normalize between [0...255]
Mat grayscale = toGrayscale(ev.reshape(1, height));
// show image (with Jet colormap)
Mat cgrayscale;
applyColorMap(grayscale, cgrayscale, COLORMAP_JET);
imshow(format("%d", i), cgrayscale);
}