How to| 获取部分图像

得到图像的一个矩形部分在图像处理任务中是十分常见且常用的. 这里将对包括鼠标操作在内的几种方式进行说明.

来自视频的精选范例:

获取部分图像的最简单方法是使用 ImageCrop. 默认情况下,ImageCrop 从图像的中心截取指定像素宽度和高度子区域. 使用 ImageCrop 剪切一个像素宽度为 300、像素高度为 100 的图像:

In[2]:=
Click for copyable input
Out[2]=

如果要选择原始图像的特定一角,可以从相反的角落剪切. 您可以通过剪切右上部分选择左下角的图像:

In[3]:=
Click for copyable input
Out[3]=

如果已知所要提取的原始图像的行与列,可以使用 ImageTake. 得到图像的前100行:

In[4]:=
Click for copyable input
Out[4]=

ImageTake 中还可以使用具体的开始和结束索引以进行精确的区域选择. 取行数为200至299、列数为100至399的图像部分:

In[5]:=
Click for copyable input
Out[5]=

ImageCropImageTake 是互补的,为您提供广泛的功能. 但是,如果您想要使用鼠标或其它指针设备以交互方式选择感兴趣的区域呢?您很容易通过几个步骤快速做到.

将鼠标指针放在图像上,单击鼠标右键,然后选择 获取索引. 这时,鼠标指针将会变为十字形,并在一旁带有工具提示条,指示当前行和列的位置.

左键单击图像的两个位置,分别表示所需矩形区域的对角线上的两个端点. 然后,您可以简单地将坐标 复制粘贴 至一个输入单元中.

您可以在这个图像上试试,将坐标粘贴到到下一个输入单元中:

In[10]:=
Click for copyable input
Out[10]=
Click for copyable input

请注意坐标以 的形式给出:

In[1]:=
Click for copyable input

将上面的索引进行转置,以将列表转换成 ImageTake 所需要的 的形式,然后,排序操作确保行和列的列表是按升序排列,不管选择矩形对角的顺序如何:

In[9]:=
Click for copyable input
Out[9]=

这样就得到了所选择的区域:

In[10]:=
Click for copyable input
Out[10]=
New to Mathematica? Find your learning path »
Have a question? Ask support »