2015-12-18 40 views
0

我只是想知道在Visual Studio 10加載圖像我寫下面的代碼如何在CUDA Visual Studio 10中加載灰度圖像?

char * srcPath = "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/src/lena.pgm"; 

cutLoadPGMub(srcPath , &h_pixels , &width , &height); 

,但它是不工作的CUDA代碼。我想我錯誤地給圖像的路徑...

請提供解決方案。我只是CUDA中的新成員。

+0

謝謝..我有CUDA 5.0。請讓我知道如何以任何格式加載圖像,例如.jpg,gif中任何人使用CUDA。 –

+0

加載jpg,gif或任何圖像並不特定於CUDA。但是我提供了一個答案,給出了關於PGM的外觀和一個可能的選項的一些建議。 –

回答

2

您顯示的方法只能在非常舊的CUDA版本(即CUDA 4.2或更低版本)上使用,並且取決於在較新的CUDA發行版中已刪除的SDK功能。

加載PGM映像(或磁盤文件中的任何映像)不是特定於CUDA的,並且網絡上提供了許多資源,並且這些資源可在計算器上使用,例如this question/answer

我強烈建議您查找並使用您自己選擇的資源。通過這樣做,您的代碼/構建環境將不依賴於CUDA樣本分佈,這可能會從一個CUDA版本更改爲下一個版本(因爲您的公式已經發生)。

但是,CUDA樣本仍在加載PGM圖像以執行某些演示。如果您想使用其中之一作爲示例,請參閱helper_image.h文件以獲取可用功能的摘要,例如sdkLoadPGMsdkSavePGM。在最近的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,則可以很快找出提供的方法/格式以及如何使用這些方法/格式。