f= imread('D:\桌面\ceshi2.jpg'); % 读入图片 R = f(:,:,1); % 获取红色分量 G = f(:,:,2); % 获取绿色分量 B = f(:,:,3); % 获取蓝色分量 f1 = f; % 红色通道图片 for i = 1:950 for j = 1:1393 a = mod(i,2); b = mod(j,2); if eq(a,1) && eq(b,1) f1(j,i,2) = 0; f1(j,i,3) = 0; else f1(j,i,:) = 0; end end end f2 = f; % 绿色通道图片 for i = 1:950 for j = 1:1393 a = mod(i,2); b = mod(j,2); if eq(a,1) || eq(b,1)%排除全偶坐标 f2(j,i,1) = 0; f2(j,i,3) = 0; else f2(j,i,:) = 0; end if eq(a,0) || eq(b,0)%排除全奇坐标 f2(j,i,1) = 0; f2(j,i,3) = 0; else f2(j,i,:) = 0; end end end f3 = f; % 蓝色通道图片 for i = 1:950 for j = 1:1393 a = mod(i,2); b = mod(j,2); if eq(a,0) && eq(b,0) f3(j,i,1) = 0; f3(j,i,2) = 0; else f3(j,i,:) = 0; end end end f4 = f1+f2; f = f4+f3; df=f; for i=5:946 for j=5:1393 A = ones(5); B = [df(j-2,i+2,:) df(j-1,i+2,:) df(j,i+2,:) df(j+1,i+2) df(j+2,i+2); df(j-2,i+1,:) df(j-1,i+1,:) df(j,i+1,:) df(j+1,i+1) df(j+2,i+1); df(j-2,i,:) df(j-1,i,:) df(j,i,:) df(j+1,i) df(j+2,i); df(j-2,i-1,:) df(j-1,i-1,:) df(j,i-1,:) df(j+1,i-1) df(j+2,i-1); df(j-2,i-2,:) df(j-1,i-2,:) df(j,i-2,:) df(j+1,i-2) df(j+2,i-2)]; df(j,i,:)=dot(A,B); end end imshow(df)
时间: 2024-04-11 09:29:46 浏览: 47
tensorflow下的图片标准化函数per_image_standardization用法
这段代码是用于读取一张图片,并对其进行一些处理。首先,代码将读入的图片进行分离,得到红色分量(R)、绿色分量(G)和蓝色分量(B)。然后,根据不同的条件对这些分量进行处理,得到三个新的图片f1、f2和f3。
对于f1,代码通过循环遍历每个像素点,判断其坐标是否为奇数,如果是,则将该像素点的绿色分量和蓝色分量设为0,否则将该像素点的所有分量都设为0。
对于f2,代码同样遍历每个像素点,判断其坐标的奇偶性。如果x或y坐标为奇数,则将该像素点的红色分量和蓝色分量设为0;如果x或y坐标为偶数,则将该像素点的红色分量和绿色分量设为0。
对于f3,代码同样遍历每个像素点,判断其坐标是否为偶数,如果是,则将该像素点的红色分量和绿色分量设为0,否则将该像素点的所有分量都设为0。
接下来,代码对f1和f2进行相加得到f4,然后将f4和f3进行相加得到最终的图片f。最后,代码对f进行了一个滤波处理,通过计算每个像素点周围5x5的区域的加权平均值来更新该像素点的值。
最后一行代码使用imshow函数将处理后的图片df显示出来。
阅读全文