用MATLAB打印一个3D心形图像,最好会动的。。每一步代码后面要有解释这一步在干吗。
答案:2 悬赏:40 手机版
解决时间 2021-01-26 05:18
- 提问者网友:听门外雪花风
- 2021-01-25 09:27
用MATLAB打印一个3D心形图像,最好会动的。。每一步代码后面要有解释这一步在干吗。
最佳答案
- 五星知识达人网友:大漠
- 2021-01-25 10:07
g=imread('C:\Users\zhourui\Desktop\1.jpg'); %读入图像的具体位置, k=imnoise(g,'gaussian',0.1); %图像去噪(高斯噪声) v=rgb2gray(k); %图像由rgb转为gray subplot(3,2,1); %当前图像显示在figure中的第一个(总共可以同时显示6个) imshow(g) %将原始图像显示在第一个(第一行第一个) title('orginal image'); %figure中第一个图像的title subplot(3,2,2); %显示figure中的第二个(第一行第二个) imshow(v) %将去噪后的图像显示在figure中的第二个 title('noise image'); %figure中第二个图的title [h,w]=size(v); %计算去噪图像的大小(h行数,wl为列数) n=9; %设定变量n=9 f=double(v); %将去噪图像v转为double型变量f a=ones(n,n); %变量a为一个n*n的矩阵,元素均为1 y=f; %将f的值赋给y %每个元素的值改为9*9窗口的灰度均值 %即均值滤波,窗口大小为9*9 %均值滤波结果存储在y中 for i=1:h-n+1 for j=1:w-n+1 a=f(i:i+(n-1),j:j+(n-1)); s=sum(sum(a)); y(i+(n-1)/2,j+(n-1)/2)=s/(n*n); end end subplot(3,2,3); %显示figure中的第三个图像(第一行第三个) imshow(uint8(y)) %显示均值滤波的结果 title('noise reduction by average filter'); %均值滤波的title x=f; %f赋值给x %每个元素的值改为9*9窗口的灰度大小的中间值 %即中值滤波,窗口大小为9*9 %中值滤波结果存储在x中 for i=1:h-n+1 for j=1:w-n+1 c=f(i:i+(n-1),j:j+(n-1)); e=c(1,:); for u=2:n e=[e,c(u,:)]; end mm=median(e); x (i+(n-1)/2,j+(n-1)/2)=mm; end end subplot(3,2,4);%显示figure中的第四个图像(第二行第一个) imshow(uint8(x))%显示中值滤波的结果 title('noise reduction by median filter');%中值滤波的title
全部回答
- 1楼网友:有你哪都是故乡
- 2021-01-25 11:18
不用
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯