_x[] values are now PPM colorChannels

This commit is contained in:
gurkenhabicht 2018-05-07 22:39:31 +02:00
parent 5b0f257452
commit 2b1469f55e
1 changed files with 43 additions and 25 deletions

View File

@ -21,6 +21,7 @@
#define RESULTS 3 #define RESULTS 3
#define DIRECT_PREDECESSOR 2 #define DIRECT_PREDECESSOR 2
#define LOCAL_MEAN 4 #define LOCAL_MEAN 4
#define TEST_VALUES 5
#define RGB_COLOR 255 #define RGB_COLOR 255
#if defined(_MSC_VER) #if defined(_MSC_VER)
#include <BaseTsd.h> #include <BaseTsd.h>
@ -49,9 +50,10 @@ typedef struct {
colorChannel_t *data; colorChannel_t *data;
}imagePixel_t; }imagePixel_t;
static imagePixel_t * rdPPM(char *fileName); static imagePixel_t * rdPPM(char *fileName); // read PPM file format
void mkPpmFile(char *fileName, imagePixel_t *image); void mkPpmFile(char *fileName, imagePixel_t *image); // writes PPM file
void * ppmColorChannel(imagePixel_t *image); int ppmColorChannel(FILE* fp, imagePixel_t *image); // writes colorChannel from PPM file to log file
void ppmTo_X( FILE* fp ); // stores color channel values in _x[]
/* *file handling* */ /* *file handling* */
char * mkFileName(char* buffer, size_t max_len, int suffixId); char * mkFileName(char* buffer, size_t max_len, int suffixId);
@ -72,23 +74,24 @@ void localMean(void);
int main(int argc, char **argv) { int main(int argc, char **argv) {
char fileName[50]; char fileName[50];
int i; int i, xLength;
// char *colorChannel; int *colorChannel;
imagePixel_t *image; imagePixel_t *image;
image = rdPPM("cow.ppm");
ppmColorChannel(image);
//printf("%s", colorChannel);
// for ( i = 0; i < 30; i++ ) {
// printf("%d", *(colorChannel+i));
// }
image = rdPPM("beaches.ppm");
mkFileName(fileName, sizeof(fileName), TEST_VALUES);
FILE* fp5 = fopen(fileName, "w");
xLength = ppmColorChannel(fp5, image);
printf("%d\n", xLength);
FILE* fp6 = fopen(fileName, "r");
ppmTo_X ( fp6 );
srand((unsigned int)time(NULL)); srand((unsigned int)time(NULL));
for (i = 0; i < M; i++) { for (i = 0; i < M; i++) {
_x[i] += ((255.0 / M) * i); // Init test values // _x[i] += ((255.0 / M) * i); // Init test values
for (int k = 0; k < M; k++) { for (int k = 0; k < M; k++) {
w[k][i] = rndm(); // Init weights w[k][i] = rndm(); // Init weights
} }
@ -301,7 +304,7 @@ Contains and returns every suffix for all existing filenames
*/ */
char * fileSuffix(int id) { char * fileSuffix(int id) {
char * suffix[] = { "_weights_pure.txt", "_weights_used.txt", "_direct_predecessor.txt", "_ergebnisse.txt", "_localMean.txt" }; char * suffix[] = { "_weights_pure.txt", "_weights_used.txt", "_direct_predecessor.txt", "_ergebnisse.txt", "_localMean.txt","_testvalues.txt" };
return suffix[id]; return suffix[id];
} }
@ -545,17 +548,32 @@ gets one of the rgb color channels and returns the array
====================================================================================== ======================================================================================
*/ */
void * ppmColorChannel(imagePixel_t *image) { int ppmColorChannel(FILE* fp, imagePixel_t *image) {
int length = (image->x * image->y) / 3; int length = 1000; // (image->x * image->y) / 3;
int i = 0; int i = 0;
// realloc(result, length);
printf("%d\n", length);
if (image) { if (image) {
for ( i = 0; i < length; i++ ){ for ( i = 0; i <= length; i++ ){
fprintf(stdout,"%d\n", image->data[i].green); fprintf(fp,"%d\n", image->data[i].green);
} }
} }
// memcpy(colorChannel, fclose(fp);
return length;
}
void ppmTo_X( FILE* fp ) {
int i = 0;
int d, out;
double f;
int length = 1000;
char buffer[length];
while ( !feof(fp) ) {
if ( fgets(buffer, length, fp) != NULL ) {
sscanf(buffer,"%lf", &_x[i]);
printf("%lf\n", _x[i] );
++i;
}
}
fclose(fp);
} }