C++ 如何从c+中的图像获取像素坐标+;使用特定条件
我想从像素值不为零的图像中获得(x,Y)坐标。我在这段代码中得到了以下错误: 错误-访问错误:C++ 如何从c+中的图像获取像素坐标+;使用特定条件,c++,C++,我想从像素值不为零的图像中获得(x,Y)坐标。我在这段代码中得到了以下错误: 错误-访问错误: camera.cpp void Camera ::write_uint8_image_1(uint8_image_t *image, int *output) { int index = 1; for(uint32_t i = 0; i < image->h; i++) { for(uint32_t j = 0; j < image-&
camera.cpp
void Camera ::write_uint8_image_1(uint8_image_t *image, int *output)
{
int index = 1;
for(uint32_t i = 0; i < image->h; i++)
{
for(uint32_t j = 0; j < image->w; j++)
{
if(image->data[i * image->w + j] != 0)
output[index++] = i;
output[index++] = j; /* error : bad access */
}
}
output[0] = index;
}
main.cpp
int output[800] = {0};
/*print output*/
C1.write_uint8_image_1(c.output_image, output);
for (int i = 1; i < output[0]; i++)
std::cout<< output[i] << " , ";
camera.cpp
无效摄影机::写入图片1(图片,int*输出)
{
int指数=1;
对于(uint32_t i=0;ih;i++)
{
对于(uint32_t j=0;jw;j++)
{
如果(图像->数据[i*图像->w+j]!=0)
输出[index++]=i;
输出[index++]=j;/*错误:访问错误*/
}
}
输出[0]=索引;
}
main.cpp
int输出[800]={0};
/*打印输出*/
C1.写入图像(c.输出图像,输出);
for(int i=1;istd::cout如果if
和index
应该从0
开始,您可能需要一个花括号?谢谢您的评论。但它不起作用。可能还有其他问题,可能是您的输出没有足够的分配空间。使用调试器,查看出现时的i
,j
值等。如果和索引应该从0
开始,则可能需要在后加一个大括号。谢谢您的评论。但它不起作用。可能还有其他问题,可能是您的输出没有足够的分配空间。使用调试器,查看出现时的i
,j
值等。