Sto cercando di risolvere un problema in cui dovrei cambiare un'immagine a colori in un'immagine in scala di grigi. Per questo scopo sto usando un approccio parallelo CUDA.
Il codice kerne che sto invocando sulla GPU è il seguente.immagine colorata in scala di grigi usando elaborazione parallela CUDA
__global__
void rgba_to_greyscale(const uchar4* const rgbaImage,
unsigned char* const greyImage,
int numRows, int numCols)
{
int absolute_image_position_x = blockIdx.x;
int absolute_image_position_y = blockIdx.y;
if (absolute_image_position_x >= numCols ||
absolute_image_position_y >= numRows)
{
return;
}
uchar4 rgba = rgbaImage[absolute_image_position_x + absolute_image_position_y];
float channelSum = .299f * rgba.x + .587f * rgba.y + .114f * rgba.z;
greyImage[absolute_image_position_x + absolute_image_position_y] = channelSum;
}
void your_rgba_to_greyscale(const uchar4 * const h_rgbaImage,
uchar4 * const d_rgbaImage,
unsigned char* const d_greyImage,
size_t numRows,
size_t numCols)
{
//You must fill in the correct sizes for the blockSize and gridSize
//currently only one block with one thread is being launched
const dim3 blockSize(numCols/32, numCols/32 , 1); //TODO
const dim3 gridSize(numRows/12, numRows/12 , 1); //TODO
rgba_to_greyscale<<<gridSize, blockSize>>>(d_rgbaImage,
d_greyImage,
numRows,
numCols);
cudaDeviceSynchronize(); checkCudaErrors(cudaGetLastError());
}
vedo una linea di punti nella prima riga di pixel.
errore sto ottenendo è errore
libdc1394: Impossibile inizializzare libdc1394
di differenza al pos 51 supera tolleranza del 5
Riferimento: 255
GPU: 0
my input/output images Qualcuno mi può aiutare con questo ??? Grazie in anticipo.
Si prega di dare alla vostra domanda un titolo più significativo.Così com'è, non significa assolutamente niente per nessuno tranne te. Come farebbe una ricerca con una simile domanda di elaborazione delle immagini * mai *? – talonmies
@talonmies: spero che il titolo abbia senso ora. –
Questo è un compito del corso "Introduzione alla programmazione parallela" su Udacity. Dovresti risolverlo da solo e non usare stackowerflow per ottenerlo risolto dagli altri. – RoBiK