700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > MATLAB旋转后生成透明背景图片

MATLAB旋转后生成透明背景图片

时间:2018-11-05 23:01:28

相关推荐

MATLAB旋转后生成透明背景图片

1.读入图片

2.旋转图片

3.改变背景颜色

4.抠图

I = imread('0.png');%读取图片for i=1:1:90I_rotating = imrotate(I,i*-1,'bilinear','crop');%旋转图片I_rotating(I_rotating==0)=200; %灰度为0的像素点改为200,方便抠图outputFile=[num2str(i),'.png'];imwrite(I_rotating,outputFile);i%查看生成到第几张图片了end

把灰度为0(黑色)的像素点改为200。可以改成别的,或通过RGB通道改为红色背景。一定要和原图有明显差异,方便抠图软件自动扣图。

I = imread('0.png');for i=1:1:90I_rotating = imrotate(I,i*-1,'bilinear','crop');%I_rotating(I_rotating==0)=200; %图片中有大量灰度为0的像素点,不能直接改灰度R=I_rotating(:,:,1);%读取RGB通道数据G=I_rotating(:,:,2);B=I_rotating(:,:,3);for m=1:90 %图片是90*90的for j=1:90if((R(m,j)==0)&&(G(m,j)==0)&&(B(m,j)==0)) %判断像素点三通道颜色全为0的部分,为旋转后填充的像素%R(m,j)=255; %这里可以把背景改为纯红色elseR(m,j)=R(m,j)+1;%图像区域每个像素点+1,把灰度变为非0G(m,j)=G(m,j)+1;B(m,j)=B(m,j)+1;endendendI_rotating(:,:,1)=R(:,:);%重新还原图片I_rotating(:,:,2)=G(:,:);I_rotating(:,:,3)=B(:,:);%I_rotating(I_rotating==0)=200; %灰度为零部分改为200,如果通过像RGB判断把背景改过了就不需要这个outputFile=[num2str(i),'.png'];imwrite(I_rotating,outputFile);iend

图片处理前需要先抠一张原图,背景色透明就行。透明背景读进来灰度为0(纯黑)。原图片的图像位置不能有像素点RGB(0,0,0)的情况。

生成完毕的图片可以用WPS的批量处理来进行批量抠图。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。