如何使用uint8阵列保存图像数据?假设我有一个模糊的圆形图像,而不是一个矩形,因此圆圈之外没有像素数据。如何进入最顶部的像素位置?最底部?等等......这个图像不一定是一个圆圈,它可能是一个模糊和非几何的东西。
答案 0 :(得分:8)
将图像加载到行x列x RGB的数组中。 假设缺少的像素是零,这里是顶部/底部/左/右坐标:
[top_col, top_row]= find(sum(I,3)', 1);
[bottom_col, bottom_row]= find(sum(I,3)', 1, 'last');
[left_row, left_col]= find(sum(I,3), 1);
[right_row, right_col]= find(sum(I,3), 1, 'last');
答案 1 :(得分:1)
我认为你应该使用sparse
矩阵来存储你的图像。
它只会将像素存储在您想要的位置。
稀疏矩阵的存储方式如下:
v
c
的开头列表,以便所有值v(c(i):(c(i+1)-1))
属于列i
r
,以使值v(j)
的行为r(j)