日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 画面设置模糊,如何在Android中模糊图像的某些部分?

發(fā)布時(shí)間:2025/5/22 Android 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 画面设置模糊,如何在Android中模糊图像的某些部分? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

做幾次蒙面模糊….

>創(chuàng)建面具

0表示模糊(黑色),> = 1表示不模糊(白色).以足夠大的值初始化此部分,例如w = 100像素

>創(chuàng)建蒙版模糊功能

只是一個(gè)常見的卷積與一些矩陣像

0.0 0.1 0.0

0.1 0.6 0.1

0.0 0.1 0.0

但是只做掩模為== 0的目標(biāo)像素,在圖像模糊后也模糊掩模.這應(yīng)該稍微擴(kuò)大白色區(qū)域(每次迭代按像素計(jì)算但在邊界上丟失幅度,這就是為什么w> 1).

>循環(huán)子彈#2 N次

N確定模糊/非模糊漸變深度w只是為了確保毛刺蒙版會增長…每次模糊蒙版都會增加其白色部分

這應(yīng)該是訣竅,你也可以使用掩碼的擴(kuò)張而不是模糊它.

[edit1]實(shí)施

今天玩了一下,發(fā)現(xiàn)面具不夠平滑,所以我改變了算法(這里是我的代碼C):

picture pic0,pic1,pic2;

// pic0 - source

// pic1 - output

// pic2 - mask

int x0=400,y0=330,r0=100,dr=200;

// x0,y0,r0 - masked area

// dr - blur gradient size

int i,r;

// init output as sourceimage

pic1=pic0;

// init mask (size of source image) with gradient circles

pic2.resize(pic0.xs,pic0.ys);

pic2.clear(0);

for (i=1;i<=255;i++)

{

r=r0+dr-((dr*i)>>8);

pic2.bmp->Canvas->Brush->Color=TColor(i<<16); // shifted because GDI has inverse channel layout then direct pixel access

pic2.bmp->Canvas->Pen ->Color=TColor(i<<16);

pic2.bmp->Canvas->Ellipse(x0-r,y0-r,x0+r,y0+r);

}

for (i=1;i<255;i+=10) pic1.rgb_smooth_masked(pic2,i);

這里順暢的功能:

//---------------------------------------------------------------------------

void picture::rgb_smooth_masked(const picture &mask,DWORD treshold)

{

int i,x,y;

color *q0,*q1,*m0,c0,c1,c2;

if ((xs<2)||(ys<2)) return;

for (y=0;y

{

q0=p[y ]; m0=mask.p[y];

q1=p[y+1];

for (x=0;x

if (m0[x].dd

{

c0=q0[x];

c1=q0[x+1];

c2=q1[x];

for (i=0;i<4;i++)

q0[x].db[i]=DWORD((DWORD(c0.db[i])+DWORD(c0.db[i])+DWORD(c1.db[i])+DWORD(c2.db[i]))>>2);

}

}

}

//---------------------------------------------------------------------------

>創(chuàng)建漸變蒙版,其中圓圈的顏色從1增加到255

其余為黑色,漸變寬度為dr,并確定平滑銳度.

>使用蒙版和閾值創(chuàng)建平滑蒙版

平滑掩模像素所在的所有像素.閾.請參閱函數(shù)rgb_smooth_masked.它使用2×2卷積矩陣

0.50,0.25

0.25,0.00

>循環(huán)閾值從1到255的某個(gè)步驟

該步驟確定圖像模糊強(qiáng)度.

最后這里有一些視覺效果,這是我用相機(jī)拍攝的源圖像:

這里左邊的輸出和右邊的掩碼:

藍(lán)色表示值< 256(B是最低的8位顏色) 我使用自己的圖片類圖片,所以一些成員是: > xs,ys圖像大小,以像素為單位> p [y] [x] .dd是(x,y)位置的像素,為32位整數(shù)類型>清晰(彩色) – 清除整個(gè)圖像> resize(xs,ys) – 將圖像調(diào)整為新分辨率

總結(jié)

以上是生活随笔為你收集整理的Android 画面设置模糊,如何在Android中模糊图像的某些部分?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。