//not working int PlotComparagram(FILE* im1, FILE* im2){ printf("step - in PlotComparagram\n"); // my comparaplot dimentions will always be from 0 to 255 // on both axis int w, h; unsigned char ch1, ch2; unsigned char comp[255][255]; Get_w_h(im1, &w, &h); SkipLines(&im1, 1); SkipLines(&im2, 4); printf("width: %d, height: %d\n", w, h); int i1, i2, k1, k2; for(i1 = 0; i1 < 256; i1 ++){ printf("i1\n"); for(i2 = 0; i2 < 256; i2 ++){ for(k1 = 0; k1 < w; k1 ++){ for(k2 = 0; k2 < h; k2 ++){ ch1 = fgetc(im1); ch2 = fgetc(im2); if(ch1 == i1 && ch2 == i2) comp[i1][i2] ++; if(((i1+1) % 1000) == 0) printf("char: %c", comp[i1][i2]); } } } } printf("step - before drawing comparagraph\n"); FILE* nf; int a, b; nf = fopen("comparagraph.pgm", "w"); fprintf(nf, "%s\n%d\n%d\n%d\n", "P5", 255, 255, 255); for(a = 0; a < 256; a ++){ for(b = 0; b < 256; b++){ fprintf(nf, "%c", comp[a][b]); } } fclose(nf); }
void SearchEdge() { int x = 0; int z = 0; int tmp; int tmp1, tmp2; int LorR = 0; int buffer[160]; int F_continueSearch[2] = { 1, 1 }; int F_maybeCrossRoad[2] = { 0, 0 }; int F_reborn = 0; uchar buffer_startLine[80][2]; int n_startLine = 1; int C_startLine = 0; int startLineX[2]; Pr_SelectFIFO = ~Pr_SelectFIFO; al422b_SelectFIFO(Pr_SelectFIFO); al422b_Reset(); // initial parameters --->>> F_startLine = 0; edgeStartZ[left] = 0; edgeStartZ[right] = 0; C_activePoint[left] = 0; C_activePoint[right] = 0; searchRange[right].start = rightSearchRange; searchRange[right].end = midSearchRange; searchRange[left].start = midSearchRange; searchRange[left].end = leftSearchRange; SkipLines(skipLines-1); SkipPixels(40); for (x = 0; x < 80; x++) buffer_startLine[x][0] = ReadPixel(); SkipPixels(40); for (z = 0; z < 30; z++) { if(z<8) { SkipLines(((29 - z) / skiplineControl) - 1); //ÆðÅÜÏßËÑË÷ startLineX[left] = 79; startLineX[right] = 0; tmp1 = n_startLine % 2; tmp2 = (n_startLine - 1) % 2; SkipPixels(40); for(x=0;x<80;x++)buffer_startLine[x][tmp1] = ReadPixel(); SkipPixels(40); C_startLine = 0; for(x=0;x<50;x++) { if((ABS(buffer_startLine[x][tmp1] - buffer_startLine[x][tmp2])) > (thresholdEdge+10)) { C_startLine ++; } else { if(C_startLine>5) { startLineX[right] = x; break; } else C_startLine = 0; } } C_startLine = 0; for(x=79;x>50;x--) { if((ABS(buffer_startLine[x][tmp1] - buffer_startLine[x][tmp2])) > (thresholdEdge+10)) { C_startLine ++; } else { if(C_startLine>5) { startLineX[left] = x; break; } else C_startLine = 0; } } if((ABS(startLineX[left] - startLineX[right])) < (50)) F_startLine = 1; n_startLine ++; } else { SkipLines((29 - z) / skiplineControl); } if(searchRange[right].end > searchRange[left].start) { searchRange[left].start = (searchRange[right].end + searchRange[left].start) / 2; searchRange[right].end = searchRange[left].start; } tmp = searchRange[right].start; SkipPixels(tmp); for(x=searchRange[right].start;x<searchRange[right].end;x++)buffer[x] = ReadPixel(); tmp = searchRange[left].start - searchRange[right].end; SkipPixels(tmp); for(x=searchRange[left].start;x<searchRange[left].end;x++)buffer[x] = ReadPixel(); tmp = 160 - searchRange[left].end; SkipPixels(tmp); //right LorR = right; if(F_continueSearch[LorR] == 1) { F_continueSearch[LorR] = 0; for(x=(searchRange[LorR].end-1-2);x>=searchRange[LorR].start;x--) { if(Gradient(buffer[x+2] ,buffer[x]) > thresholdEdge) { if(F_reborn == 1) edgeStartZ[LorR] = 10; else { if(z>1)//ÅжÏÕÛ½Ç { if((ABS((x - edgePoint[LorR][z-1].x) - (edgePoint[LorR][z-1].x - edgePoint[LorR][z-2].x)))> 5) { break; } } } edgePoint[LorR][z].x = x; edgePoint[LorR][z].z = z; SetSearchRange(LorR, x, defaultRange); F_continueSearch[LorR] = 1; C_activePoint[LorR] ++; break; } } } //left LorR = left; if(F_continueSearch[LorR] == 1) { F_continueSearch[LorR] = 0; for(x=searchRange[LorR].start+2;x<searchRange[LorR].end;x++) { if(Gradient(buffer[x-2] ,buffer[x]) > thresholdEdge) { if(F_reborn == 1) edgeStartZ[LorR] = 10; else { if(z>1)//ÅжÏÕÛ½Ç { if((ABS((x - edgePoint[LorR][z-1].x) - (edgePoint[LorR][z-1].x - edgePoint[LorR][z-2].x)))> 5) { break; } } } edgePoint[LorR][z].x = x; edgePoint[LorR][z].z = z; SetSearchRange(LorR, x, defaultRange); F_continueSearch[LorR] = 1; C_activePoint[LorR] ++; break; } } } switch(z) { case 2://Í·Á½Ðж¼Ã»ÓÐ×¥µ½±ßÑصÄÇé¿ö Åж¨ if((C_activePoint[left] + C_activePoint[right]) < 3) F_reborn = 1; break; case 9://¡°¸´»î°É,ÎÒµÄÓÂÊ¿¡± if(F_reborn == 1) { F_continueSearch[left] = 1; F_continueSearch[right] = 1; C_activePoint[left] = 0; C_activePoint[right] = 0; searchRange[right].start = 30; searchRange[right].end = 79; searchRange[left].start = 79; searchRange[left].end = 130; } break; case 10: if((C_activePoint[left]+ C_activePoint[right]) < 2)goto myEnd; break; } } myEnd: if ((C_activePoint[left] + C_activePoint[right]) < 8) { F_crossRoad = 1; } if ((C_activePoint[left] + C_activePoint[right]) > 20) { F_crossRoad = 0; } for (LorR = 0; LorR < 2; LorR++) { if(C_activePoint[LorR] == 0)C_activePoint[LorR] = 1; crctr_BTX[LorR].tail = edgePoint[LorR][(C_activePoint[LorR]-1) + edgeStartZ[LorR]]; crctr_BTX[LorR].head = edgePoint[LorR][edgeStartZ[LorR]]; crctr_BTX[LorR].inflection = GetInflectionPoint(LorR); crctr_BTX[LorR].k_hi =KPP(crctr_BTX[LorR].inflection,crctr_BTX[LorR].head); crctr_BTX[LorR].k_it =KPP(crctr_BTX[LorR].tail,crctr_BTX[LorR].inflection); crctr_BTX[LorR].k_ht =KPP(crctr_BTX[LorR].tail,crctr_BTX[LorR].head); crctr_BTX[LorR].R_hit = crctr_BTX[LorR].k_it- crctr_BTX[LorR].k_hi; } }
void HandlerPPM (char *file1, char *file2, char *file3){ /* in PPM format, there are tree bits per pixel, each bit corresponding to the levels of RGB in the pixel */ printf("step - .ppm file\n"); FILE *fp1;//image 1 FILE *fp2;//image 2 FILE *fp3;//image 3 FILE *ceri1;//image 1 FILE *ceri2;//image 2 FILE *ceri3;//image 3 FILE *rend;//final HDR rendered file int width; int height; fp1 = fopen(file1, "rb"); fp2 = fopen(file2, "rb"); fp3 = fopen(file3, "rb"); /* Get width and height from first image */ Get_w_h(fp1, &width, &height); /* Skip lines so we are ready to read */ SkipLines(&fp1, 1); SkipLines(&fp2, 4); SkipLines(&fp3, 4); //write to rendered file rend = fopen("rendered.ppm", "w"); fprintf(rend, "%s\n%d\n%d\n%d\n", "P6", width, height, 255); ceri1 = fopen("cert1.ppm", "w"); fprintf(ceri1, "%s\n%d\n%d\n%d\n", "P6", width, height, 255); ceri2 = fopen("cert2.ppm", "w"); fprintf(ceri2, "%s\n%d\n%d\n%d\n", "P6", width, height, 255); ceri3 = fopen("cert3.ppm", "w"); fprintf(ceri3, "%s\n%d\n%d\n%d\n", "P6", width, height, 255); int size; float ku, km, ko; //exposures for the three images unsigned char rendR, rendG, rendB; ku = 1; km = 4; ko = 16; unsigned char bR1, bR2, bR3; unsigned char bG1, bG2, bG3; unsigned char bB1, bB2, bB3; unsigned char c1wR, c2wR, c3wR; unsigned char c1wG, c2wG, c3wG; unsigned char c1wB, c2wB, c3wB; printf("step - writing channels\n"); for(size = width * height; size > 0; size --){ /* Red Channel */ bR1 = fgetc(fp1);//median bR2 = fgetc(fp2);//under bR3 = fgetc(fp3);//over rendR = DrawChannel(bR1, bR2, bR3, km, ku, ko, &c1wR, &c2wR, &c3wR); bG1 = fgetc(fp1); bG2 = fgetc(fp2); bG3 = fgetc(fp3); rendG = DrawChannel(bG1, bG2, bG3, km, ku, ko, &c1wG, &c2wG, &c3wG); bB1 = fgetc(fp1); bB2 = fgetc(fp2); bB3 = fgetc(fp3); rendB = DrawChannel(bB1, bB2, bB3, km, ku, ko, &c1wB, &c2wB, &c3wB); /* write rendered file */ fprintf(rend, "%c", rendR); fprintf(rend, "%c", rendG); fprintf(rend, "%c", rendB); /* write certainty c1 */ fprintf(ceri1, "%c", c1wR); fprintf(ceri1, "%c", c1wG); fprintf(ceri1, "%c", c1wB); /* write certainty c1 */ fprintf(ceri2, "%c", c2wR); fprintf(ceri2, "%c", c2wG); fprintf(ceri2, "%c", c2wB); /* write certainty c1 */ fprintf(ceri3, "%c", c3wR); fprintf(ceri3, "%c", c3wG); fprintf(ceri3, "%c", c3wB); } fclose(fp1); fclose(fp2); fclose(fp3); fclose(rend); fclose(ceri1); fclose(ceri2); fclose(ceri3); printf("step - closed files\n"); }
bool NeuralNet::GetInfo(char *pData, int *pNInp, int *pNHid, int *pNOut) { // input to hidden matrix char *pt = pData; pt = SkipSpaces(pt); if(strncmp(pt, "weigvec", strlen("weigvec")) != 0) { return false; } pt += strlen("weigvec"); pt = SkipSpaces(pt); int n_inp_hid; if(!GetIntValue(pt, &n_inp_hid)) { return false; } pt = SkipLines(pt, n_inp_hid + 1); // goto next line and skip n_inp_hid lines if(pt == 0) { return false; } // hidden to output matrix if(strncmp(pt, "weigvec", strlen("weigvec")) != 0) { return false; } pt += strlen("weigvec"); pt = SkipSpaces(pt); int n_hid_out; if(!GetIntValue(pt, &n_hid_out)) { return false; } pt = SkipLines(pt, n_hid_out + 1); // goto next line and skip n_hid_out lines if(pt == 0) { return false; } // hidden biases if(strncmp(pt, "biasvec", strlen("biasvec")) != 0) { return false; } pt += strlen("biasvec"); pt = SkipSpaces(pt); int n_biases_hid; if(sscanf(pt, "%d", &n_biases_hid) != 1) { return false; } pt = SkipLines(pt, n_biases_hid + 1); // goto next line and skip n_biases_hid lines if(pt == 0) { return false; } // output biases if(strncmp(pt, "biasvec", strlen("biasvec")) != 0) { return false; } pt += strlen("biasvec"); pt = SkipSpaces(pt); int n_biases_out; if(sscanf(pt, "%d", &n_biases_out) != 1) { return false; } pt = SkipLines(pt, n_biases_out + 1); // goto next line and skip n_biases_out lines if(pt == 0) { return false; } *pNOut = n_biases_out; *pNHid = n_biases_hid; *pNInp = n_inp_hid / n_biases_hid; return true; }