您顯示的方法只能在非常舊的CUDA版本(即CUDA 4.2或更低版本)上使用,並且取決於在較新的CUDA發行版中已刪除的SDK功能。
加載PGM映像(或磁盤文件中的任何映像)不是特定於CUDA的,並且網絡上提供了許多資源,並且這些資源可在計算器上使用,例如this question/answer。
我強烈建議您查找並使用您自己選擇的資源。通過這樣做,您的代碼/構建環境將不依賴於CUDA樣本分佈,這可能會從一個CUDA版本更改爲下一個版本(因爲您的公式已經發生)。
但是,CUDA樣本仍在加載PGM圖像以執行某些演示。如果您想使用其中之一作爲示例,請參閱helper_image.h
文件以獲取可用功能的摘要,例如sdkLoadPGM
和sdkSavePGM
。在最近的CUDA版本的標準Linux安裝中,該文件位於/usr/local/cuda/samples/common/inc
。但是,不能保證將來的CUDA版本將以這種方式提供此功能。
對於使用這些PGM功能的整個例子,看看任何使用它們的樣本代碼(Linux的grep
將幫助這裏)如SobelFilter CUDA示例代碼(尤其是SobelFilter.cpp
):
if (sdkLoadPGM<unsigned char>(file, &pixels, &w, &h) != true)
{
printf("Failed to load PGM image file: %s\n", file);
exit(EXIT_FAILURE);
}
當然這將取決於其正確裝入你的機器上的樣本,包括從樣品中相應的文件包括目錄,並具有樣本庫函數可作爲良好,正確鏈接。您可以使用cuda示例項目(包括其Makefiles)作爲管理所有這些的路線圖。
CUDA示例還會在某些情況下加載其他圖像格式,例如PPM以及其他圖像格式。如果在CUDA示例代碼目錄中使用linux grep
,則可以很快找出提供的方法/格式以及如何使用這些方法/格式。
謝謝..我有CUDA 5.0。請讓我知道如何以任何格式加載圖像,例如.jpg,gif中任何人使用CUDA。 –
加載jpg,gif或任何圖像並不特定於CUDA。但是我提供了一個答案,給出了關於PGM的外觀和一個可能的選項的一些建議。 –