用mathematica,对于一张二值图,怎么把所有1的坐标保存到一个数组里

得到数组后,我想通过数组,在坐标轴上得到相应的图像。如何得到这个数组... 得到数组后,我想通过数组,在坐标轴上得到相应的图像。如何得到这个数组 展开
 我来答
iUkiyoE
2013-06-02 · TA获得超过643个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:393万
展开全部

以下面的二值图来简单的进行说明,

首先将图像导入,

tuxiang = Import["F:\\Figure.png", "Data"];

接下来找到图像中白颜色的位置,也就是二值图像中 1 的坐标,这里选用函数Position,

zuobiao = Position[tuxiang, 1];

那么变量 zuobiao 即为保存所有位置1的数组,当然还可以在坐标轴上得到相应的图像。

ArrayPlot[SparseArray[zuobiao -> 1, Dimensions[tuxiang]], 
 FrameTicks -> Automatic]

效果如下,

更多追问追答
追问
谢谢,怎么一次性处理大量图片,比如1000张以上,图片名字序号为1,2,...,5555这样的。

为什么我对一张图进行运算,原来大多是近似连续的线,在输出后怎么变成很散的点了,明显很很多点没有读入,基本看不出来原图形。
追答

说明你的图像根本就不是二值图像,只是一个灰度图像,像素值除了 0 和 1 之外,还有介于 0 和1 之间的值,需要把那个 Position 函数的用法修改一下,

Position[tuxiang, x_ /; x > 0];

至于一次性处理大量图片,这个个人觉得意义不大,楼主有兴趣的话,自己何不探索一番!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式