📄 main.cpp
字号:
#ifdef _CH_
#define WIN32
#error "The file needs cvaux, which is not wrapped yet. Sorry"
#endif
#ifndef _EiC
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <direct.h>
#endif
using namespace std;
#ifdef _EiC
#define WIN32
#endif
int main( int argc, char** argv )
{
IplImage *img, *gray, *gray1;
const char *dir;
char filename[255];
char dirname[255];
const char *prefix;
int num=0, i,j,k;
int c;
FILE *fp;
int w, h;
dir = argc > 1 ? argv[1] : 0;
prefix = argc > 2? argv[2]: 0;
num = argc > 3? atoi(argv[3]) : 0;
cvNamedWindow("image", 1);
if(dir && prefix){
cout<<"Processing:";
//for(i=0; i<num; i++){
//cout<< i << "...";
//sprintf(filename, "%s\\%s%03d.jpg", dir, prefix,i);
sprintf(filename, "c:\\bryan000.pgm");
printf("filename:%s\n", filename);
//img = cvLoadImage(filename, 1); //force to grayscale
//gray = cvCreateImage(cvSize(img->width, img->height),IPL_DEPTH_8U,1); // gray scale holder
gray = cvLoadImage(filename,0);
//cvCvtColor(img, gray, CV_BGR2GRAY);
cvShowImage("image", gray);
printf("image: %dx%d\n", gray->width, gray->height);
//cvWaitKey(0);
//write to file
//sprintf(dirname, "%s\\output", dir);
//_mkdir(dirname);
//sprintf(filename, "%s\\output\\%s%03d.pgm", dir, prefix, i);
//cvSaveImage(filename, gray);
sprintf(filename, "bryan.pgm");
if(!(fp=fopen(filename, "wb"))){
cout<<"Cannot write to file"<<endl;
exit(0);
}
fprintf(fp, "P5\n%d %d\n255\n", gray->height, gray->width);
for(j=0;j<gray->height; j++){
for(k=0; k<gray->width; k++){
//fwrite(gray->imageData[j*gray->widthStep, gray->width*gray->width, 1, fp);
fputc((gray->imageData[j*gray->widthStep+k])&255,fp);
//fprintf(fp, "%d "
//gray1->imageData[j]=gray->imageData[j];
}
}
fclose(fp);
gray = cvLoadImage(filename,0);
/*
printf("image1: %dx%d\n", gray->width, gray->height);
fp=fopen(filename, "rb");
fscanf(fp,"P5\n%d %d\n255\n", &w, &h);
gray1 = cvCreateImage(cvSize(w, h), 8, 1);
fread(gray1->imageData, gray->widthStep*gray->height, 1, fp);
for(j=0;j<gray->imageSize; j++){
if(gray->imageData[j]!=gray1->imageData[j]){
printf("%d:%d-%d\n",j,gray->imageData[j], gray1->imageData[j]);
cvWaitKey(0);
}
}
*/
cvShowImage("image", gray);
cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImage(&gray);
//}
cout<<endl;
}
else
{
printf("FormatConvert: convert color pgm files to grayscale.\n");
printf(" syntax: FormatConvert dirName filePrefix\n");
printf(" dirName or filePrefix not found.\n");
printf(" exiting.....\n");
}
return 0;
}
#ifdef _EiC
main(1,"main.cpp");
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -