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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java opencv磨皮算法_使用OPENCV简单实现具有肤质保留功能的磨皮增白算法

發(fā)布時(shí)間:2023/12/2 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java opencv磨皮算法_使用OPENCV简单实现具有肤质保留功能的磨皮增白算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在一個(gè)美顏高手那里發(fā)現(xiàn)一個(gè)美顏算法,他寫出了數(shù)學(xué)表達(dá)式,沒有給出代碼,正好在研究OPENCV,順手實(shí)現(xiàn)之。具體過程就是一系列矩陣運(yùn)算,據(jù)說是從一個(gè)PS高手那里研究 出來的,一并表示感謝。

這是數(shù)學(xué)表達(dá)式:

Dest?=(Src?*?(100?-?Opacity)?+?(Src?+?2?*?GuassBlur(EPFFilter(Src)?-?Src?+?128)?-?256)?*?Opacity)?/100 ;

public static Mat face2(Mat image) {

Mat dst = new Mat();

// int value1 = 3, value2 = 1; 磨皮程度與細(xì)節(jié)程度的確定

int value1 = 3, value2 = 1;

int dx = value1 * 5; // 雙邊濾波參數(shù)之一

double fc = value1 * 12.5; // 雙邊濾波參數(shù)之一

double p = 0.1f; // 透明度

Mat temp1 = new Mat(), temp2 = new Mat(), temp3 = new Mat(), temp4 = new Mat();

// 雙邊濾波

Imgproc.bilateralFilter(image, temp1, dx, fc, fc);

// temp2 = (temp1 - image + 128);

Mat temp22 = new Mat();

Core.subtract(temp1, image, temp22);

// Core.subtract(temp22, new Scalar(128), temp2);

Core.add(temp22, new Scalar(128, 128, 128, 128), temp2);

// 高斯模糊

Imgproc.GaussianBlur(temp2, temp3, new Size(2 * value2 - 1, 2 * value2 - 1), 0, 0);

// temp4 = image + 2 * temp3 - 255;

Mat temp44 = new Mat();

temp3.convertTo(temp44, temp3.type(), 2, -255);

Core.add(image, temp44, temp4);

// dst = (image*(100 - p) + temp4*p) / 100;

Core.addWeighted(image, p, temp4, 1 - p, 0.0, dst);

Core.add(dst, new Scalar(10, 10, 10), dst);

return dst;

}

測(cè)試代碼:

Mat src2 = Imgcodecs.imread("E:/work/qqq/e.jpg");

Mat src3 = face2(src2);

Mat dest = new Mat(new Size(src2.cols()+src3.cols(), src2.rows()), src2.type());

Mat temp1 = dest.colRange(0, src2.cols());

Mat temp2 = dest.colRange(src2.cols(), dest.cols());

src2.copyTo(temp1);

src3.copyTo(temp2);

Imgcodecs.imwrite("E:/work/qqq/z3.jpg",dest);

參考:

http://www.cnblogs.com/Imageshop/p/4709710.html

http://www.cnblogs.com/Imageshop/p/3871237.html

總結(jié)

以上是生活随笔為你收集整理的java opencv磨皮算法_使用OPENCV简单实现具有肤质保留功能的磨皮增白算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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