环境:win10+VS2015+cuda9.85+opencv4.5.3,GPUMX230;grid(80,5) , block(32,32),传参(GPU::PtrStepSz src , GPU::PtrStepSz dst, int dst_row ) ; 写出来的结果图片横向重复了四次;代码的功能是灰度重心计算的代码
__global__ void kernel(GPU::PtrStepSz<float> src , GPU::PtrStepSz<float> dst,
int dst_row
) {
int i = threadIdx.x + blockIdx.x * blockDim.x; // thread在x方向的全局索引,也就是列坐标,第X列
int j = threadIdx.y + blockIdx.y * blockDim.y; // thread在y方向的全局索引,也就是行坐标,第J行
if (j < src.rows && i < src.cols) //判断是否越界
{
if (j == 0) {
float sum_valuecoor, sum_value;
for (int j_y = 0; j_y < src.rows; j_y++) {
if (src(j_y, i) > 30) {
sum_valuecoor += j_y * src(j_y, i);
sum_value += src(j_y, i);
//printf("hang : (%d)\n", j_y);
}
//printf("huiduzhongxin_X: (%f)\n", huiduzhongxin_X);
//cunfang
// 访问一个像素的方式是src(行坐标,列坐标)
}
if (sum_valuecoor > 0) {
float huiduzhongxin_X = sum_valuecoor / sum_value;
dst(dst_row, i) = huiduzhongxin_X;
}
else {
dst(dst_row, i) = 0;
}
}
}
//__syncthreads(); // 同步所有线程
}
不报错但是结果不对 ,它横向写了四次一样的值 ,bmp格式的图片
请问大家这个问题有遇到过吗?它是bmp格式图片导致的吗?还是grid,block划分不对?或者是其他什么原因呢??