欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Matlab制作抖音同款含褶皺面料圖

 更新時間:2022年03月01日 10:52:07   作者:slandarer  
這篇文章主要介紹了如何利用Matlab制作抖音的同款含褶皺面料圖,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下

效果如下

步驟

1.導(dǎo)入圖片

我們需要導(dǎo)入一張褶皺圖片(background.jpg)以及一張前景圖片(foreground.jpg),將褶皺圖片灰度化,將前景圖調(diào)整至與褶皺圖片相同大小:

bkgPic=imread('background.jpg');
bkgPic=rgb2gray(bkgPic);
forePic=imread('foreground.jpg');
forePic=imresize(forePic,size(bkgPic));

原圖在這里:

2.圖片擴(kuò)張

因為我們要對前景圖片進(jìn)行拉伸,難免邊角處缺一塊,因此我們首先將邊緣處顏色往外擴(kuò)展幾圈(13圈)

exforePic=uint8(zeros(size(forePic)+[26,26,0]));
exforePic(14:end-13,14:end-13,1)=forePic(:,:,1);
exforePic(14:end-13,14:end-13,2)=forePic(:,:,2);
exforePic(14:end-13,14:end-13,3)=forePic(:,:,3);

for i=1:13
    exforePic(i,14:end-13,:)=forePic(1,:,:);
    exforePic(end+1-i,14:end-13,:)=forePic(end,:,:);
    exforePic(14:end-13,i,:)=forePic(:,1,:);
    exforePic(14:end-13,end+1-i,:)=forePic(:,end,:);
end
for i=1:3
    exforePic(1:13,1:13,i)=forePic(1,1,i);
    exforePic(end-13:end,end-13:end,i)=forePic(end,end,i);
    exforePic(end-13:end,1:13,i)=forePic(end,1,i);
    exforePic(1:13,end-13:end,i)=forePic(1,end,i);
end

擴(kuò)展后圖片(圖片下側(cè)明顯一點):

3.像素映射

原理借鑒ps扭曲置換的原理,亮度較大的像素(大于128)取右下角像素RGB值進(jìn)行置換,亮度較小的像素(小于128)取左上角像素RGB值進(jìn)行置換,由于

(255-128)/10=12.7

(0-128)/10=-12.8

各個像素點與替換像素點的距離不超過13,因此上一步共擴(kuò)展了13圈。

同時因為各個像素分布為整數(shù)點位置,而位置差計算一般都不是整數(shù),因此我們要對偏移距離向上向下取整,獲得兩個像素點RGB值,并對這兩點數(shù)值進(jìn)行線性插值即可

newforePic=uint8(zeros(size(forePic)));
for i=1:size(bkgPic,1)
    for j=1:size(bkgPic,2)
        goffset=(double(bkgPic(i,j))-128)/10;
        offsetLim1=floor(goffset)+13;
        offsetLim2=ceil(goffset)+13;
        sep1=goffset-floor(goffset);
        sep2=ceil(goffset)-goffset;
        c1=double(exforePic(i+offsetLim1,j+offsetLim1,:));
        c2=double(exforePic(i+offsetLim2,j+offsetLim2,:));
        if sep1==0
            c=double(exforePic(i+offsetLim1,j+offsetLim1,:));
        else
            c=c2.*sep1+c1.*sep2;
        end
        newforePic(i,j,:)=c;
    end
end

像素值映射結(jié)果:

4.正片疊底

將兩張圖片疊加起來

公式:混合色×基色 / 255=結(jié)果色

由于正片疊底后所出圖片較暗,這里我們選擇除以220而不是255:

newforePic=uint8((double(newforePic).*double(bkgPic))./220);
imwrite(newforePic,'result.jpg')
imshow(newforePic)

5.完整代碼

function clothFold
bkgPic=imread('background.jpg');
bkgPic=rgb2gray(bkgPic);
forePic=imread('foreground.jpg');
forePic=imresize(forePic,size(bkgPic));

exforePic=uint8(zeros(size(forePic)+[26,26,0]));
exforePic(14:end-13,14:end-13,1)=forePic(:,:,1);
exforePic(14:end-13,14:end-13,2)=forePic(:,:,2);
exforePic(14:end-13,14:end-13,3)=forePic(:,:,3);

for i=1:13
    exforePic(i,14:end-13,:)=forePic(1,:,:);
    exforePic(end+1-i,14:end-13,:)=forePic(end,:,:);
    exforePic(14:end-13,i,:)=forePic(:,1,:);
    exforePic(14:end-13,end+1-i,:)=forePic(:,end,:);
end
for i=1:3
    exforePic(1:13,1:13,i)=forePic(1,1,i);
    exforePic(end-13:end,end-13:end,i)=forePic(end,end,i);
    exforePic(end-13:end,1:13,i)=forePic(end,1,i);
    exforePic(1:13,end-13:end,i)=forePic(1,end,i);
end
    
newforePic=uint8(zeros(size(forePic)));
for i=1:size(bkgPic,1)
    for j=1:size(bkgPic,2)
        goffset=(double(bkgPic(i,j))-128)/10;
        offsetLim1=floor(goffset)+13;
        offsetLim2=ceil(goffset)+13;
        sep1=goffset-floor(goffset);
        sep2=ceil(goffset)-goffset;
        c1=double(exforePic(i+offsetLim1,j+offsetLim1,:));
        c2=double(exforePic(i+offsetLim2,j+offsetLim2,:));
        if sep1==0
            c=double(exforePic(i+offsetLim1,j+offsetLim1,:));
        else
            c=c2.*sep1+c1.*sep2;
        end
        newforePic(i,j,:)=c;
    end
end

%grayForePic=rgb2gray(newforePic);
%rate=double(bkgPic)./double(grayForePic);

newforePic=uint8((double(newforePic).*double(bkgPic))./220);
imwrite(newforePic,'result.jpg')
imshow(newforePic)
end

注:

若是17年及之前版本,需將代碼最后的

newforePic=uint8((double(newforePic).*double(bkgPic))./220);

改為(三個通道分別處理):

newforePic(:,:,1)=uint8((double(newforePic(:,:,1)).*double(bkgPic))./220);
newforePic(:,:,2)=uint8((double(newforePic(:,:,2)).*double(bkgPic))./220);
newforePic(:,:,3)=uint8((double(newforePic(:,:,3)).*double(bkgPic))./220);

到此這篇關(guān)于利用Matlab制作抖音同款含褶皺面料圖的文章就介紹到這了,更多相關(guān)Matlab褶皺面料圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文徹底搞懂IO底層原理

    一文徹底搞懂IO底層原理

    我們今天要給大家講的底層的IO看上去簡單,實則抽象。并且在它之上衍生出了語言層面用于實戰(zhàn)的技術(shù),比如我們熟悉的java語言中的NIO或者像Netty這樣的框架
    2021-06-06
  • C語言中查詢進(jìn)程信號是否被遮罩或擱置的簡單方法

    C語言中查詢進(jìn)程信號是否被遮罩或擱置的簡單方法

    這篇文章主要介紹了C語言中查詢進(jìn)程信號是否被遮罩或擱置的簡單方法,包括sigprocmask函數(shù)和sigpending函數(shù)的簡介,需要的朋友可以參考下
    2015-09-09
  • LeetCode題解C++生成每種字符都是奇數(shù)個的字符串

    LeetCode題解C++生成每種字符都是奇數(shù)個的字符串

    這篇文章主要為大家介紹了LeetCode題解C++生成每種字符都是奇數(shù)個的字符串示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 淺析C++?atomic?和?memory?ordering

    淺析C++?atomic?和?memory?ordering

    這篇文章主要介紹了C++?atomic?和?memory?ordering的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 線程崩潰不會導(dǎo)致?JVM?崩潰的原因解析

    線程崩潰不會導(dǎo)致?JVM?崩潰的原因解析

    網(wǎng)上看到一個很有意思的據(jù)說是美團(tuán)的面試題:為什么線程崩潰崩潰不會導(dǎo)致?JVM?崩潰,這個問題我看了不少回答,但都沒答到根本原因,所以決定答一答,相信大家看完肯定會有收獲,本文分以下幾節(jié)來探討,需要的朋友可以參考下
    2022-06-06
  • C語言數(shù)據(jù)結(jié)構(gòu)之順序數(shù)組的實現(xiàn)

    C語言數(shù)據(jù)結(jié)構(gòu)之順序數(shù)組的實現(xiàn)

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之順序數(shù)組的實現(xiàn)的相關(guān)資料,這里提供實現(xiàn)實例,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • C++超詳細(xì)分析type_traits

    C++超詳細(xì)分析type_traits

    C++的type_traits是一套純粹編譯期的邏輯,可以進(jìn)行一些類型判斷、分支選擇等,主要用于模板編程。使用type_traits并不難,但是我們希望能夠更加深入了解其實現(xiàn)方式,與此同時,可以更進(jìn)一步體驗C++的模板編程
    2022-08-08
  • C語言實現(xiàn)學(xué)生管理系統(tǒng)的源碼分享

    C語言實現(xiàn)學(xué)生管理系統(tǒng)的源碼分享

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C語言中strspn()函數(shù)和strcspn()函數(shù)的對比使用

    C語言中strspn()函數(shù)和strcspn()函數(shù)的對比使用

    這篇文章主要介紹了C語言中strspn()函數(shù)和strcspn()函數(shù)的對比使用,strspn是計算屬于字符串的字符數(shù)而strcspn則是判斷不屬于,需要的朋友可以參考下
    2015-08-08
  • C語言qsort函數(shù)使用方法詳解

    C語言qsort函數(shù)使用方法詳解

    qsort是一個庫函數(shù),基于快速排序算法實現(xiàn)的一個排序的函數(shù),下面這篇文章主要給大家介紹了關(guān)于C語言qsort()函數(shù)使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09

最新評論