나는 pycuda를 사용하여 이미지 픽셀의 강도를 계산하고 있습니다. 이를 위해 다음과 같이 이미지를 GPU에 보냈습니다.C에서 이미지의 RGB 채널을 읽으려면 어떻게해야합니까?
img = np.float32(np.array(img.imread('my_image.jpg')))
img_gpu = gpuarray.to_gpu(img)
그런 다음, (물론 C로 작성) 커널에서, 나는 (의사 코드에서) 다음과 같이 RGB 값을 얻을 싶어요.
__global__ void get_intensities(float* img, float* intensities) {
intensities[globalIndex] = R(x, y) + G(x, y) + B(x, y)
}
큰 문제는 이제 C에서 RGB 채널을 얻는 것입니다. 어떻게해야합니까?
첫째을 참조하십시오, 당신은 커널 이미지의 폭, 높이와 보폭을 통과해야합니다. 둘째, 픽셀이 이미지에 저장되는 방식에 따라 다릅니다. 예 : 인터리브 채널입니까? 'R G B','B G R' 등. – sgarizvi
파이썬 코드의 변수 이름에 대해 좀 더 생각해 볼 것을 권장합니다. 코드의 첫 번째 줄에는 심각한 변수 이름 충돌이 있습니다. 당신은 또한 당신이 사용했던'imread' 함수를 말하지 않았습니다. 이것은 실제로 Python 라이브러리 질문이 아닌 CUDA 프로그래밍 질문입니다. – talonmies