_x[] values are now PPM colorChannels
This commit is contained in:
		
							parent
							
								
									5b0f257452
								
							
						
					
					
						commit
						2b1469f55e
					
				| 
						 | 
					@ -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
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -109,8 +112,8 @@ int main(int argc, char **argv) {
 | 
				
			||||||
	localMean();
 | 
						localMean();
 | 
				
			||||||
	directPredecessor(); // TODO: used_weights.txt has gone missing! 
 | 
						directPredecessor(); // TODO: used_weights.txt has gone missing! 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						 // save test_array after math magic happened
 | 
						 // save test_array after math magic happened
 | 
				
			||||||
						 // memset( fileName, '\0', sizeof(fileName) );
 | 
						 // memset( fileName, '\0', sizeof(fileName) );
 | 
				
			||||||
	mkFileName(fileName, sizeof(fileName), USED_WEIGHTS);
 | 
						mkFileName(fileName, sizeof(fileName), USED_WEIGHTS);
 | 
				
			||||||
	FILE *fp1 = fopen(fileName, "w");
 | 
						FILE *fp1 = fopen(fileName, "w");
 | 
				
			||||||
	for (i = 0; i < tracking; i++) {
 | 
						for (i = 0; i < tracking; i++) {
 | 
				
			||||||
| 
						 | 
					@ -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);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue