我在GPU編程中是全新的,在使用GPU之前我沒有經驗,我有一些功能,我必須轉換這些功能,以便它們在GPU中運行,CPU版本正在運行好的,我已經使用emgucv進行圖像操作。我的代碼給出在下面,請幫助我。將emgu代碼轉換爲GPU
public static Image Highlight(Image image)
{
if (image == null)
{
throw new ArgumentNullException("image");
}
using (Image<Bgr, byte> originalImage = ConvertToEmgu(image))
using (Image<Bgr, byte> resavedOriginalImage = ConvertToEmgu(ResaveImageWithGivenCompression(image)))
using (Image<Bgr, byte> errorLevelImage = (originalImage - resavedOriginalImage) * scalingFactor)
{
return errorLevelImage.ToBitmap();
}
}
private static Image<Bgr, byte> ConvertToEmgu(Image image)
{
using (Bitmap bitmap = new Bitmap(image))
{
return new Image<Bgr, byte>(bitmap);
}
}
private static Image ResaveImage(Image image)
{
EncoderParameters jpegEncoderParameters = new EncoderParameters(1);
ImageCodecInfo jpegWithGivenCompressionFormat = GetEncoderInfo("image/jpeg");
jpegEncoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, compressionQuality);
using (MemoryStream resavedImageStream = new MemoryStream())
{
image.Save(resavedImageStream, jpegWithGivenCompressionFormat, jpegEncoderParameters);
return Image.FromStream(resavedImageStream);
}
}
private static ImageCodecInfo GetEncoderInfo(string mimeType)
{
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
return encoders.FirstOrDefault(encoder => encoder.MimeType == mimeType);
}
}
這是一個研究得非常糟糕的問題。你甚至沒有說你想在目標GPU上工作的API /框架。請編輯您的問題,以包含更多關於您正在嘗試做什麼以及您不明白的信息。 – talonmies 2012-08-16 20:29:54
好吧,隨着我發佈的代碼,我想在GPU中運行這些功能,我正在.NET框架3.5和使用visualstudio 2008。我不熟悉的是爲了增加對這些函數的gpu支持。 – 2012-08-17 04:43:15
你已經在問題中說過了。但是你甚至沒有說你編寫* GPU代碼時計劃的語言和API。如果你甚至沒有關於這個的想法,你還沒有準備好提出一個關於StackOverflow的實現細節的問題。 – talonmies 2012-08-17 05:16:34