加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

利用perlin noise 生成 wood texture

发布时间:2020-12-15 23:46:12 所属栏目:大数据 来源:网络整理
导读:%%% Perlin Noise%%% Wood_textureclc;clear all;close all;addpath('E:PhotoShop AlgortihmImage ProcessingPS Algorithm');Image=imread('9.jpg');Image=double(Image);[row,col,layer]=size(Image);baseNoise=Generate_basenoise(row,col);persistance
%%% Perlin Noise
%%% Wood_texture

clc;
clear all;
close all;

addpath('E:PhotoShop AlgortihmImage ProcessingPS Algorithm');

Image=imread('9.jpg');
Image=double(Image);

[row,col,layer]=size(Image);

baseNoise=Generate_basenoise(row,col);

persistance = 0.5;
octaveCount=6;
Cloud_texture=Cloud_generate(baseNoise,persistance,octaveCount);
% figure,% imshow(Cloud_texture);

turbePower=0.45;
period=10;
Center_X=(col+1)/2;
Center_Y=(row+1)/2;
Wood=zeros(row,col);
for i=1:row
    for j=1:col
        xValue=(j-Center_X)/col;
        yValue=(i-Center_Y)/row;
        distValue=sqrt(xValue*xValue+yValue*yValue)+turbePower*Cloud_texture(i,j);
        Wood(i,j)=abs(sin(2*period*distValue*pi))*128;
    end
end
figure,imshow(Wood/128);

Image_new=Image;

Image_new(:,:,1)=uint8(Wood+80);
Image_new(:,2)=uint8(Wood+30);
Image_new(:,3)=uint8(30);

figure,imshow(Image_new/255);

%%% Cloud generate

function Cloud_texture=Cloud_generate(baseNoise,octaveCount)

[row,col]=size(baseNoise);

Cloud_texture=zeros(row,col);

totalAmplitude = 0.0;

for i=0:octaveCount
    amplitude=persistance.^(octaveCount-i);
    % amplitude=persistance.^i;
    totalAmplitude=totalAmplitude+amplitude;
    Cloud_texture=Cloud_texture+Generate_smoothnoise(baseNoise,i)*amplitude;
end

Cloud_texture=Cloud_texture/totalAmplitude;


效果图

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读