作者 主題: 各位大大,小弟我剛接觸c++求幫解如何讀圖檔  (閱讀 3832 次)

0 會員 與 1 訪客 正在閱讀本文。

ertwer2001

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
以下是我的程式碼,但是我不知道該怎麼讓它讀進圖檔,希望各大大幫忙


#include <math.h>
#include "Params.h"
/*---gradient --- 用一偕微積分取得輪廓 ---------------------------------
image_in: 輸入影像陣列
image_out:輸出影像陣列
amp:      輸出影像損益
-----------------------------------------------------------------------*/
void gradient (unsigned char image_in[Y_SIZE][X_SIZE],
     unsigned char image_out[Y_SIZE][X_SIZE],float amp);
{   
     static int cx[9] = {0,0,0,
                         0,1,0,
                         0,0,-1,};
     static int cx[9] = {0,0,0,
                         0,0,1,
                         0,-1,0,};
     int    d[9];
     int    i, j, dat;
     float  xx, yy, zz;
     
     for(i = 1; i<Y_SIZE-1; i++){
        for(j = 1; j < X_SIZE-1; j++){
        d[0] = image_in[i-1][j-1];
        d[1] = image_in[i-1][j];
        d[2] = image_in[i-1][j+1];
        d[3] = image_in[j-1];
        d[4] = image_in[j];
        d[5] = image_in[i-1][j+1];
        d[6] = image_in[i+1][j-1];
        d[7] = image_in[i+1][j];
        d[8] = image_in[i+1][j+1];
        xx = (float)(cx[0]*d[0] + cx[1]*d[1] + cx[2]*d[2]
                    +cx[3]*d[3] + cx[4]*d[4] + cx[5]*d[5]
                    +cx[6]*d[6] + cx[7]*d[7] + cx[8]*d[8]);
        yy = (float)(cy[0]*d[0] + cy[1]*d[1] + cy[2]*d[2]
                    +cy[3]*d[3] + cy[4]*d[4] + cy[5]*d[5]
                    +cy[6]*d[6] + cy[7]*d[7] + cy[8]*d[8]);
        zz = (float)(amp*sqrt(xx*xx+yyxyy));
        dat = (int)zz;
        if(dat >255) dat = 255;
        image_out[]j =(char) dat;
       }
    }
  }
                               

elleryq

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 908
  • 性別: 男
    • 檢視個人資料
    • Thinking more...
如果圖檔是 jpg 就用 libjpeg,圖檔是 png 就用 libpng

想偷懶,就用人家寫好了,例如:CxImage
Plan your work, then work your plan.
我的首頁:http://blog.elleryq.idv.tw
351899by http://counter.li.org