图像水彩画处理
這個水彩畫效果是在寫另外一篇算法的過程中無意實現的,當然肯定有些問題,不能適用于所有的圖片,但是很多效果還不錯,在此記錄下,以后弄到這方面再補充。
WaterColor.m
%for k=1:50%對某文件夾中所有文件 % imageName=strcat('image_jpg\',num2str(k),'.jpg'); % imageNameWater=strcat('temp\',num2str(k),'-watercolor.jpg'); A=imread(imageName);%讀入原圖,命名為A [h,w,~]=size(A); %B1=rgb2gray(A); B=rgb2hsv(A); I=B; J=B;for i=2:w-1 %中間區域改變亮度值 for j=2:h-1max=B(j-1,i-1,3);for m=i-1:i+1for n=j-1:j+1if(B(n,m,3)>max)max=B(n,m,3);endendend I(j,i,:)=max; end end for j=1:w %四條邊改變亮度值I(1,j,:)=I(2,j,:);I(h,j,:)=I(h-1,j,:); end for i=1:hI(i,1,:)=I(i,2,:);I(i,w,:)=I(i,w-1,:); end%figure,imshow(A),xlabel('原始圖像'); %figure,imshow(B1),xlabel('原始圖像的灰度圖Iv'); %figure,imshow(I),xlabel('亮通道I');wb=B; for i=1:w %計算wb和新圖像J的亮通道 for j=1:hJ(j,i,:)=(power(I(j,i,3),0.3)*55+200)/255;if(B(j,i,3)<=0.3||B(j,i,2)<=0.3)wb(j,i,:)=exp(B(j,i,3)-0.3+B(j,i,2)-0.3);elsewb(j,i,:)=1;endend end%figure,imshow(wb),xlabel('黑暗權重wb'); %figure,imshow(J),xlabel('J的亮通道');a=B; for i=1:w %計算相對曝光afor j=1:ha(j,i,:)=wb(j,i,3)*(J(j,i,3)/I(j,i,3));end end %figure,imshow(a),xlabel('相對曝光a');J1=B; for i=1:wfor j=1:hJ1(j,i,3)=a(j,i,3)*double(B1(j,i,1))/255;end end WaterColor=hsv2rgb(J1); %imwrite(WaterColor,imageNameWater);%保存圖像 imshow(WaterColor),xlabel('水彩畫');
總結
- 上一篇: cookielifetime php_p
- 下一篇: 奇谈 2020.11.24日记