转换C++;到MATLAB 我试图把一些C++代码转换成Matlab并有一个问题。请有人从下面解释一行代码好吗 int *image = (int *) malloc(size*sizeof(int)) ; bool diff = true; while (diff) { diff = false; for (unsigned int itt = 0; itt < size; itt++) { diff = diff || (image[itt] != image[image[itt]]); image[itt] = image[image[itt]]; } }
这部分转换C++;到MATLAB 我试图把一些C++代码转换成Matlab并有一个问题。请有人从下面解释一行代码好吗 int *image = (int *) malloc(size*sizeof(int)) ; bool diff = true; while (diff) { diff = false; for (unsigned int itt = 0; itt < size; itt++) { diff = diff || (image[itt] != image[image[itt]]); image[itt] = image[image[itt]]; } },c++,matlab,image-processing,C++,Matlab,Image Processing,这部分 image[image[itt]] 我不明白这在MATLAB中是如何工作的 Image = zeros(100,100); ImageSize = (Image); diff = true; while(diff) diff = false; for x=1:ImageSize(1) % Height for y=1:ImageSize(2) % Width diff = diff || (image(x,y) ~= ????);
image[image[itt]]
我不明白这在MATLAB中是如何工作的
Image = zeros(100,100);
ImageSize = (Image);
diff = true;
while(diff)
diff = false;
for x=1:ImageSize(1) % Height
for y=1:ImageSize(2) % Width
diff = diff || (image(x,y) ~= ????);
image(x,y) = ????;
end
end
end
感谢所有能帮助我理解这一点的人。首先,
ImageSize=(Image)代码>不正确。这只需将Image
分配给ImageSize
。使用ImageSize=size(图像)代码>取而代之
第二,在Matlab代码中使用双索引,而C++代码使用单索引。
while(diff)
diff = false;
for n=1:numel(Image) %# Total pixels in the image
diff = diff || (Image(n) ~= Image(Image(n)));
Image(n) = Image(Image(n));
end
end
<>你可能需要转换你的矩阵,因为我不能确定C++代码是按列还是行的方式运行。此外,由于您正在将矩阵初始化为全零(zeros(100100);
),因此您将得到所有的零作为结果。尝试将其初始化为实际图像或至少随机整数
干杯所以你不明白C++代码在做什么?或者你不知道如何在Matlab中实现它?
while(diff)
diff = false;
for n=1:numel(Image) %# Total pixels in the image
diff = diff || (Image(n) ~= Image(Image(n)));
Image(n) = Image(Image(n));
end
end