Matlab 製作圖層混合測試影象
阿新 • • 發佈:2021-06-12
準備寫一個 PS 中 27 種圖層混合的 matlab 實現,需要用到測試影象,以驗證混合效果,總結混合規律,主要包括顏色測試影象和亮度測試影象。
影象的製作參考了這篇部落格,但由於技術能力有限,彩色影象的圓錐形漸變色帶沒能實現,只好用矩形代替了。
Matlab 程式碼
clear;close all;clc h = 33; w = 11*60; x1 = ones(h*2,w,3)*0; x2 = ones(h*6,w,3).*(repelem(linspace(0,255,11),w/11)); x3 = ones(h*6,w,3).*(linspace(0,255,w)); x4 = ones(h*6,w,3).*(repelem(linspace(0,255,3),w/3)); X = [x1;x2;x3;x4]; figure;imshow(uint8(X)) imwrite(uint8(X),'luminosity.png') y1= ones(h*4,w,3).*cat(3,[linspace(255,255,w/6),linspace(255,200,w/6),linspace(200,200,w/6),linspace(200,200,w/6),linspace(200,255,w/6),linspace(255,255,w/6)],... [linspace(200,200,w/6),linspace(200,200,w/6),linspace(200,255,w/6),linspace(255,255,w/6),linspace(255,255,w/6),linspace(255,200,w/6)],... [linspace(200,255,w/6),linspace(255,255,w/6),linspace(255,255,w/6),linspace(255,200,w/6),linspace(200,200,w/6),linspace(200,200,w/6)]); y2 = ones(h*4,w,3).*cat(3,[linspace(255,255,w/6),linspace(255,0,w/6),linspace(0,0,w/6),linspace(0,0,w/6),linspace(0,255,w/6),linspace(255,255,w/6)],... [linspace(0,0,w/6),linspace(0,0,w/6),linspace(0,255,w/6),linspace(255,255,w/6),linspace(255,255,w/6),linspace(255,0,w/6)],... [linspace(0,255,w/6),linspace(255,255,w/6),linspace(255,255,w/6),linspace(255,0,w/6),linspace(0,0,w/6),linspace(0,0,w/6)]); y3= ones(h*4,w,3).*0.4.*cat(3,[linspace(255,255,w/6),linspace(255,0,w/6),linspace(0,0,w/6),linspace(0,0,w/6),linspace(0,255,w/6),linspace(255,255,w/6)],... [linspace(0,0,w/6),linspace(0,0,w/6),linspace(0,255,w/6),linspace(255,255,w/6),linspace(255,255,w/6),linspace(255,0,w/6)],... [linspace(0,255,w/6),linspace(255,255,w/6),linspace(255,255,w/6),linspace(255,0,w/6),linspace(0,0,w/6),linspace(0,0,w/6)]); y4 = ones(h*4,w,3).*cat(3,... repelem([255,0,0],w/3),... repelem([0,255,0],w/3),... repelem([0,0,255],w/3)); y5 = ones(h*4,w,3).*(... cat(3,repelem([0,255,255],w/3),... repelem([255,0,255],w/3),... repelem([255,255,0],w/3))); Y = [y1;y2;y3;y4;y5]; figure;imshow(uint8(Y)) imwrite(uint8(Y),'color.png')