發表文章

目前顯示的是 5月, 2019的文章

[Matlab / Octave] 數據化圖片資料

圖片
假設你手邊只有資料的圖片檔, 要如何單從圖檔取出圖檔內的數據呢? 這邊使用上方的圖,來做說明。現在有一張LED 的電流對流明的關係圖, 假設想從裡面取出250安培的電流會對應多少流明的資料, 要怎麼做? 接下來使用的方法, 只限制在當x和y軸都是線性坐標的情況才能使用, 若是對數或指數座標就不適用了。 主要的指令會是 [x,y] = ginput(n) ginput會回傳n次你在圖形物件上用滑鼠點的n個座標x跟座 標y,想在點選n次前就結束的話,可以按return鍵結束。 display('press max x and min y'); [pixel_maxx, pixel_miny]=ginput(1); max_x=input('max_x='); min_y=input('min_y='); display('press min x and max y'); [pixel_minx, pixel_maxy]=ginput(1); min_x=input('min_x='); max_y=input('max_y=‘); 剛開始必須先定義圖形物件的座標範圍。 第一步,先點選圖片中x最大y最小的座標點(下圖紅圈圈處): 然後輸入x軸最大值:3000,和y軸最小值:0。 第二步則是要點選圖片中x最小y最大的座標點(下圖紅圈圈處): 然後輸入x軸最小值:0,和y軸最大值:800。 輸入完,接下來會由下方程式碼計算, 剛剛在圖片裡點到的pixe l位置轉換成圖片座標的比例。 pixel_originx=pixel_minx; pixel_originy=pixel_miny; x_ratio=(max_x-min_x)/(pixel_ maxx-pixel_minx); y_ratio=(max_y-min_y)/(pixel_ maxy-pixel_miny); 接著要開始點選圖片上的資料了(這邊以5個資料點舉例), 可以選擇自己需要多少點來完成資料的截取,輸入完多少資料