猿问

在Visual Stduio C#中使用GPU进行图像比较

我是图像处理的新手。我必须通过比较像素在整个图像中搜索图像的一部分。我需要获取完整图像中存在的小图像的坐标。


所以,我在做


for int i = 0 to Complete_Image.Lenght

 for int j = 0 to Complete_Image.Height

  for int x = 0 to Small_Image.Lenght

   for int y = 0 to Small_Image.Height

    if Complete_Image[i+j+x][i+j+y] == Small_Image[x][y]

     Message "image found at coordinate x, y"

     Break

这是一种简单的像素匹配算法,可以通过比较像素在完整图像中找到图像的特定部分。


这非常耗时。例如,如果我必须在1000 X 1000的图像中查找50X50图像的坐标,则需要进行1000 X 1000 X 50 X 50像素的颜色比较。


所以:


有没有更好的方法在C#中进行图像比较?

我可以使用AMD Radeon 460 GPU并行执行此比较吗?还是至少有一部分算法使用了GPU功能?


绝地无双
浏览 596回答 2
2回答

月关宝盒

是的,您可以使用C#中的GPUcmsoft在此处为其库提供了一个教程您将需要在OpenCL中编写一些说明您可能还需要检查一下是否有opencl的驱动程序/运行时(或AMD)该代码主要是样板内容。很直截了当。与编写代码相比,您可能花费更多的时间来安装依赖项。
随时随地看视频慕课网APP
我要回答