r k-means 分類結果_別再自己看電泳結果了!通過R語言進行影象識別分類
阿新 • • 發佈:2021-01-04
技術標籤:r k-means 分類結果
本文靈感來源於一篇人像識別的博文
https://blog.csdn.net/weixin_43786013/article/details/90266409
文章把彩色的人像圖片做了RGB格式向灰度圖片的轉換以及SVD分解,利用了線性迴歸最小殘差法、logistic 迴歸、最短歐幾里德距離法進行人臉識別性別判定。
彩色圖片是高維陣列,而且圖片的畫素和比例也多種多樣,因此在計算中容易出現過擬合以及處理器難以計算的情況。
但是,實驗室內用於分子標記鑑定的電泳結果圖具有畫素穩定,比例穩定,結果簡單(純合子與雜合子)的特點,因此應用R語言對圖片進行結果分析和簡單應該不難。
我們要做到的事:
1,讀取圖片
2,將圖片轉化為計算機語言可用的二維陣列(電泳膠圖是黑白色圖)
3,合併圖片並
4,訓練模型並對測試集分類
下面我們來看一下程式碼。
library(imager)#匯入影象編輯包library(e1071)#匯入SVM包#寫一個可以完成讀入並整理圖片格式的函式ImageImportfunction(path="./"){ListOfFileNamelist.files(path)ResultNULL for(i in ListOfFileName) {FileNameInPath"")ImageLoadedImageLoaded10L,size_y= size_z = 10L, size_c = 10L)ImageLoadedas. ImageLoaded 1, mult(dim(ImageLoaded))) ifelse(!is.null(Result), Result } return(Result)}Electronic1"某一種膠形的圖片路徑")Electronic2"另一種膠形的圖片路徑")(sam.count0.8,nrow(Electronic2)*# [1] 348TrainE11:nrow(Electronic1),sam.count,replace=F)TrainE21:nrow(Electronic2),sam.count,replace=F)ImageDataToScore1,length(TrainE1)),rep( probablity = T, cross = 3, type = "C-classification", method = "SVM")E1yuce E1yuce as.numeric(prop.table(table(E1yuce))#獲得對膠圖1的打分矩陣E2yuceE2yuceas.numeric(prop.table(table(E2yuce))#獲得對膠圖2的打分矩陣
嗯
雖然要先把每個條帶都區分出了再分類有點脫了褲子放屁的嫌疑,但總歸是研究室民工的一小步嘛,反正我們的信條是:能讓電腦幹,絕不自己幹。