怎麼提取原始資料大概有以下幾種方法:
方法一:
有些雜誌要求作者上傳圖表的資料,所以可以直接去雜誌上下載。
方法二:
利用已有的軟體,這些軟體都支援圖片選點,然後給出點的資料。如:
• DataThief
• Engauge Digitizer
• GetData Graph Digitizer
方法三:
可能大部分雜誌不適合方法一,然後方法二的精度你可能認為不夠,還有一種方法就是自己進行影象處理。比如 python 的 PIL 庫。
假設現在需要以下圖片資料。
『一』匯入相關 python 庫
『二』讀取圖片
利用 PIL 讀取圖片,並將圖片轉換為灰度模式 (白色為 255,黑色為 0)。讀取每個畫素的灰度值存入陣列。
『三』建立資料座標與畫素座標的關係
根據圖中具有特徵的行 ( 列),確定該行 ( 列) 的畫素座標和資料座標,進而確定資料座標和畫素座標的關係。
在該例子中,圖的邊框為圖中具有特徵的行 (列),邊框的資料座標已知 (x: 0和10,y: -1和1)。畫素座標可以透過其灰度值特徵得到。圖的邊框上黑色較多,如果將每行上的畫素相加,邊框的地方數值會小,如下圖。
灰度值的和為最小的畫素位置是邊框的位置,據此可以求得邊框四條線的畫素座標。
確定了邊框的畫素座標,就可以確定畫素座標和資料座標的關係了。
『四』選出資料
先選出邊框內的灰度值資料矩陣。
現在需要選出資料點的畫素座標,所以需要判斷某點是資料點還是空白。同樣地,可以根據灰度值的差別確定某點是資料點還是空白。先任選一列看其灰度值。
如上圖,有資料的地方灰度值在100 左右,根據該條件,選取資料點,並得到資料點的畫素座標。
根據上面確定的關係,將資料點畫素座標轉換為資料座標,並畫圖。
如上,基本達到了我們的目的。當然實際圖形可能更復雜,這裡僅提供思路。
完結。
怎麼提取原始資料大概有以下幾種方法:
方法一:
有些雜誌要求作者上傳圖表的資料,所以可以直接去雜誌上下載。
方法二:
利用已有的軟體,這些軟體都支援圖片選點,然後給出點的資料。如:
• DataThief
• Engauge Digitizer
• GetData Graph Digitizer
方法三:
可能大部分雜誌不適合方法一,然後方法二的精度你可能認為不夠,還有一種方法就是自己進行影象處理。比如 python 的 PIL 庫。
假設現在需要以下圖片資料。
『一』匯入相關 python 庫
『二』讀取圖片
利用 PIL 讀取圖片,並將圖片轉換為灰度模式 (白色為 255,黑色為 0)。讀取每個畫素的灰度值存入陣列。
『三』建立資料座標與畫素座標的關係
根據圖中具有特徵的行 ( 列),確定該行 ( 列) 的畫素座標和資料座標,進而確定資料座標和畫素座標的關係。
在該例子中,圖的邊框為圖中具有特徵的行 (列),邊框的資料座標已知 (x: 0和10,y: -1和1)。畫素座標可以透過其灰度值特徵得到。圖的邊框上黑色較多,如果將每行上的畫素相加,邊框的地方數值會小,如下圖。
灰度值的和為最小的畫素位置是邊框的位置,據此可以求得邊框四條線的畫素座標。
確定了邊框的畫素座標,就可以確定畫素座標和資料座標的關係了。
『四』選出資料
先選出邊框內的灰度值資料矩陣。
現在需要選出資料點的畫素座標,所以需要判斷某點是資料點還是空白。同樣地,可以根據灰度值的差別確定某點是資料點還是空白。先任選一列看其灰度值。
如上圖,有資料的地方灰度值在100 左右,根據該條件,選取資料點,並得到資料點的畫素座標。
根據上面確定的關係,將資料點畫素座標轉換為資料座標,並畫圖。
如上,基本達到了我們的目的。當然實際圖形可能更復雜,這裡僅提供思路。
完結。