public static Map loadTrainData() throws Exception { Map map = new HashMap(); File dir = new File("train"); File[] files = dir.listFiles(); for (File file : files) { map.put(ImageIO.read(file), file.getName().charAt(0) + ""); } return map; }
在嘗試使用PHP寫驗證碼識別,參考一個Java的代碼。但是遇到這個不知道應該怎麼用PHP寫。
大概意思是開啟目錄中的映像,然後講映像當做map的鍵,檔案名稱做值。
然後我寫了如下的代碼,但是後面我不知道怎麼辦了。
public function loadTrainData() { $data = array(); $path = "train/train1/"; $handler = opendir($path); while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { $files[] = file_get_contents($path.$filename); } } closedir($handler); #code 這裡應該怎麼寫,還是說有更好的寫法去寫這個函數 return $data; }
回複內容:
public static Map loadTrainData() throws Exception { Map map = new HashMap(); File dir = new File("train"); File[] files = dir.listFiles(); for (File file : files) { map.put(ImageIO.read(file), file.getName().charAt(0) + ""); } return map; }
在嘗試使用PHP寫驗證碼識別,參考一個Java的代碼。但是遇到這個不知道應該怎麼用PHP寫。
大概意思是開啟目錄中的映像,然後講映像當做map的鍵,檔案名稱做值。
然後我寫了如下的代碼,但是後面我不知道怎麼辦了。
public function loadTrainData() { $data = array(); $path = "train/train1/"; $handler = opendir($path); while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { $files[] = file_get_contents($path.$filename); } } closedir($handler); #code 這裡應該怎麼寫,還是說有更好的寫法去寫這個函數 return $data; }
你的 train
目錄下的檔案名稱大概都是這樣的吧? A B C D ... 0 1 2 3
Java
的那段代碼是遍曆目錄, 然後建一個Map
.
你PHP的代碼應該類似於這樣:
$files[$filename] = file_get_contents($path.$filename);
已解決。
public function loadTrainData() { $path = "train/tran1/"; $handler = opendir($path); while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { $sampleMap[substr($filename, 0, 1)] = imagecreatefromjpeg($path.$filename); } } closedir($handler); return $sampleMap; }