日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【论文党福利】如何提取图像中的数据

發布時間:2024/7/23 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【论文党福利】如何提取图像中的数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【論文黨福利】如何提取圖像中的數據


? ? ?從事科研的老師和同學們在撰寫論文時,經常需要將文獻中的曲線與自己的結果進行對比,為獲取原始數據,最靠譜的方法當然是找原作者要。如果沒有要到呢?本文將成為論文黨的福利,為你提供你兩種解決方案,均是用matlab實現的。
? ? ?一種辦法是編寫一個GUI程序,將待扣取數據的圖像繪制到屏幕上,再配合一些放大、拖拽等功能,通過手動描點的方法來得到結果,我們稱作描點法。
? ? ?另一種方法,根據你待獲取數據的曲線中的一些規律,編寫一個從圖像中扣取數據點的程序。相比手動描點方法帶來的隨機誤差,這種方法得到的結果比較精確,但也許需要你根據實際問題來調整代碼或者配置文件。
? ? ?第一種方法源于網上比較流行的一個手動描點小程序。第二種方法是我在解決實際問題時編寫出來的,本文將只介紹第二種方法如何實現,兩種方法的程序均免費提供,獲取途徑見文末。
----------------------------------------------華麗分割線------------------------------------------------------
? ? ?直接進入主題,我面臨到這樣一個問題,老師希望我能獲取到下面一幅圖像中的數據,以便能夠和自己得到的結果進行對比。圖像如下所示:

? ? ?為了我們寫出的程序能夠盡量用在更多的場合,需要提取一些普遍的原理出來,就像上面一副圖像,我們待提取數據的圖像有這些特點:
? ? ?圖形中曲線一般有特定的顏色加以區分,比如紅色。
? ? ?圖中可能出現多個曲線需要提取。
? ? ?一般情況待提取數據的曲線出現的位置是不固定的,但我們根據實際背景很容易確定一個提取曲線的橫坐標范圍。
? ? ?通常我們只需在X軸進行等距提取就可以了。

? ? ?總的來說,圖像就是一個矩陣,矩陣的每個元素對應一個像素,其實就是一種顏色。我們只需要告訴程序我們要提取X=X0時的函數值Y0,程序要做的也僅僅是沿著X0對應的矩陣的那一列從函數值低的方向向函數值高的方向去尋找是否到達了曲線上的點,這樣就可以達到提取數據點的功能。
? ? ?再結合上面的分析,我們的程序從設計的角度建立了下述的一些邏輯,來盡可能的讓我們的程序能夠處理大多數的圖像提取問題。閱讀了下面這些細節,你將能對整個程序的大體框架有很好的理解,并且能針對具體問題進行針對性的調整。
? ? ?1.如何批量處理?
? ? ?為了能夠提高效率,我們需要批量處理,其實很簡答,我們需要一個ImageList.txt文件來告訴程序都有哪些圖像需要處理。文本文件內部結構如下圖所示:

? ? ?2.遍歷矩陣時,當前判定點是否是曲線上的點?
? ? ?這很好處理,使用當前像素的顏色,也就是R、G、B三原色的取值來判定。例如,上圖中,我們待提取曲線是紅色的,我們只需判斷矩陣中的每個元素是否為紅色,也就是(255,0,0)。實際使用時我添加了一個閾值,來防止圖中的曲線顏色看起來是紅色,但其實不是正紅,也就是數值接近紅色但有區別的情況,比如顏色是(250,10,5)。
? ? ?3.等距提取
? ? ?我們的程序使用在X軸上等距提取數據點的方法,這更符合我們的需求。你只需要告訴程序你要提取點的范圍和等距提取多少個點。
? ? ?4.如何確定坐標軸范圍?
? ? ?這里我們又需要配置一個Axeslist.txt文件來告訴程序每幅圖像中的坐標軸范圍,以便程序能夠在矩陣索引值和實際坐標軸坐標間進行換算。該文件如下圖所示:

? ? ?需要注意的是,每行代表一幅圖像的坐標軸范圍信息,其內容要與ImageList.txt中列出的圖像一一對應。
? ? ?5.如何確定提取范圍?
? ? ?這里我們又需要配置一個ExtractPointsList.txt文件來告訴程序需要提取點的范圍是什么?每個范圍內等距分為多少份?該文件如下圖所示:

? ? ?每行代表一幅圖像的取點范圍及個數信息,同樣地,其內容要與ImageList.txt中列出的圖像一一對應。

? ? ?配置好了上面所介紹的三個.txt文件,剩下的工作交給程序來完成就好了。運行的結果會保存在當前目錄下,就像這樣:

? ? ?以保存的文件結果Result1為例,使用如下一行代碼即可將結果提取出來:
? ? ?load Result1 Result


? ? ?最后就可以將提取的論文中的結果和我們自己的比對著試試了:

? ? ?效果還不錯!快試試吧~
------------------------------------------------華麗分割線----------------------------------------------------
? ? ?另一種描點法的程序是我在網上找到的。

? ? ?本文介紹方法的源代碼是我自己編寫的。

? ? ?我打包在了一起:下載鏈接

? ? ?另外,歡迎大家關注我們團隊的微信公眾號:LSGO軟件技術團隊

總結

以上是生活随笔為你收集整理的【论文党福利】如何提取图像中的数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。