【matlab】:matlab如何实现切分图片并保存?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23100787/article/details/50924925

这个问题的答案是非常简单的,只需要用到几个非常简单的函数,其中函数如下几个:
imread 读入函数
imwrite 写入函数,把图形变量保存为图片

先说我要弄的图片如下:
这里写图片描述

我想把其中的第一行第二个黑色的圆形粗略的给折腾出来,这需要怎么做,这就是我需要解决的问题。

第一步:*读入图片*
I = imread(‘d:\测试.jpg’);
注意,图片我起的名字是测试.jpg,并且是放在d盘下面的。这样就能把整个图片的信息存储进I这个变量里面去了,我们可以看下I的要素
这里写图片描述
是个220*220*3的数学矩阵

然后使用imshow(I),通过这样能够把图片显示出来,并且我们能够得到各个点的x,y坐标
imshow(I);出现如下效果
这里写图片描述
点击那个带加好的按钮,然后再图片上任意点击
得到一些数据
这里写图片描述
x,y代表着像素坐标,这样我们得到各个点的像素坐标后,把这部分给隔离出来就行。

第二步:隔离
我选好的这张图片的x坐标是从75 到142,y坐标是从10到66
所以我们重新设立一个变量接住这部分像素内的数据就行
B = I(75:142,10:66); //这样B里面就保存了我想要的图片的数据
imshow(B); 这样就能显示出我想要的图片
然后imwrite(B,’d:\测试结果数据.jpg’);
这样的话我想要的部分的图片数据就成为d盘下的一张图片
这里写图片描述

大功告成!

完整代码:

I = imread('d:\\测试.jpg');
imshow(I);
B = I(75:142,10:66);
 imshow(B);
 imwrite(B,'d:\\b.jpg');
imshow(I);

代码很短的,简单来说就是找到想要的数据的x,y范围,然后通过imwrite函数写入即可

如果您觉得这个文章对您有帮助,点个赞,谢谢~

展开阅读全文

没有更多推荐了,返回首页