Selenium Webdriver 學習總結-Jenkins配置(八)

來源:互聯網
上載者:User

標籤:opencv

這周單位要做一個人臉美化的項目,查資料遇到這位大牛的部落格,地址如下:點擊開啟連結

My Code也是在他的基礎上進行修改的,但是他對映像的RGB三個通道平等調節,為了適應我的需求,我改成了針對三個通道分別調節。廢話不多說,開始上源碼

void ImageAdjust(Mat& src, Mat& dst, vector<double> low_in, vector<double> high_in, vector<double> low_out, vector<double> high_out, vector<double> gamma){vector<double> low;vector<double> high;vector<double> bottom;vector<double> top;vector<double> err_in;vector<double> err_out;int N = low_in.size();for (int i=0; i<N; i++){low.push_back(low_in[i]*255);high.push_back(high_in[i]*255);bottom.push_back(low_out[i]*255);top.push_back(high_out[i]*255);err_in.push_back(high[i] - low[i]);err_out.push_back(top[i] - bottom[i]);}    int x,y;vector<double> val;    // intensity transform    for( y = 0; y < src.rows; y++)    {        for (x = 0; x < src.cols; x++)        {            for (int i=0; i<N; i++)            {double val = (src.at<Vec3b>(y, x)[i]);val = pow((val-low[i])/err_in[i], gamma[i])*err_out[i]+bottom[i]; // ☆if(val > 255) val = 255;if(val < 0) val = 0;dst.at<Vec3b>(y, x)[i] = val;            }        }    }}

測試主函數:

int _tmain(int argc, _TCHAR* argv[]){Mat src = imread("test.png",1);Mat dst = Mat(src.size(), src.type());if (!src.empty()){double a[] = {0.0, 0.0, 0.0};double b[] = {1.0, 1.0, 1.0};double c[] = {0.0, 0.0, 0.0};double d[] = {1.0, 1.0, 1.0};double e[] = {1.0, 1.0, 1.0};vector<double> low_in(a, a+3);vector<double> high_in(b, b+3);vector<double> low_out(c, c+3);vector<double> high_out(d, d+3);vector<double> gamma(e, e+3);ImageAdjust(src, dst, low_in, high_in, low_out, high_out, gamma);imshow("src", src);imshow("dst", dst);waitKey(0);}    return 0;}

注意:☆處是將映像I中的亮度值映射為一個新值,即將low_in至high_in之間的值映射到low_out至high_out之間的值。low_in 以下與 high_in 以上的值被截斷了,其中 gamma指定描述值I和值J關係曲線的形狀。如果gamma小於1,此映射偏重更高數值(明亮)輸出,如果gamma大於1,此映射偏重更低數值(灰暗)輸出,如果省略此參數,預設為(線性映射)。 具體用法可以參考matlab中的imadjust。


經過修改輸入的參數,程式可以跑出來以下的效果:



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.