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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

阈值Java_亲测有效!一种完美动态阈值白平衡算法 Java实现。

發布時間:2025/3/21 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阈值Java_亲测有效!一种完美动态阈值白平衡算法 Java实现。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

幾年沒發文了,重新拿起技術!

最近做圖像處理,要自動處理顏色平衡問題,很多什么直方圖優化之類的,都不完美。所以在博客園找到了這個前輩的文章。

http://www.cnblogs.com/Imageshop/archive/2013/04/20/3032062.html#commentform

很可惜,這篇文章,首先沒有源碼,其次給出的一些計算過程有問題。所以我直接查看論文原文,以及一些映射公式,現在分享Java實現的版本:

核心算法:

BufferedImage img = ImageIO.read(new File("model3.jpg"));int pixelsize = img.getWidth() *img.getHeight();double[][][] YCbCr = new double[img.getWidth()][img.getHeight()][3];double Mr = 0, Mb = 0, Ymax = 0;for (int i = 0; i < img.getWidth(); i++) {for (int j = 0; j < img.getHeight(); j++) {

YCbCr[i][j]=toYCbCr(img.getRGB(i, j));

Mr+= YCbCr[i][j][2];

Mb+= YCbCr[i][j][1];

Ymax= Math.max(Ymax, YCbCr[i][j][0]);

}

}

Mr/=pixelsize;

Mb/=pixelsize;double Dr = 0, Db = 0;for (int i = 0; i < YCbCr.length; i++) {for (int j = 0; j < YCbCr[i].length; j++) {

Db+= Math.abs(YCbCr[i][j][1] -Mb);

Dr+= Math.abs(YCbCr[i][j][2] -Mr);

}

}

Dr/=pixelsize;

Db/=pixelsize;double[][] Y = new double[img.getWidth()][img.getHeight()];double[] Yhistogram = new double[256];double Ysum = 0;for (int i = 0; i < Y.length; i++) {for (int j = 0; j < Y[i].length; j++) {int value = (Math.abs(YCbCr[i][j][1] - (Mb + Db * Math.signum(Mb))) < 1.5 * Db) & // (Math.abs(YCbCr[i][j][2]) - (1.5 * Mr + Dr * Math.signum(Mr))) < 1.5 * Dr ? 1 : 0;if (value <= 0)continue;double y = YCbCr[i][j][0];

Y[i][j]=y;

Yhistogram[(int) Y[i][j]]++;

Ysum++;

}

}double Yhistogramsum = 0;double Ymin = 0;for (int i = Yhistogram.length - 1; i >= 0; i--) {

Yhistogramsum+=Yhistogram[i];if (Yhistogramsum > 0.1 *Ysum) {

Ymin=i;break;

}

}double Raver = 0, Gaver = 0, Baver = 0;double averSum = 0;for (int i = 0; i < Y.length; i++) {for (int j = 0; j < Y[i].length; j++) {if (Y[i][j] >Ymin) {int color =img.getRGB(i, j);int r = (color >> 16) & 0xFF;int g = (color >> 8) & 0xFF;int b = color & 0xFF;

Raver+=r;

Gaver+=g;

Baver+=b;

averSum++;

}

}

}

Raver/=averSum;

Gaver/=averSum;

Baver/=averSum;double Rgain = Ymax / Raver, Ggain = Ymax / Gaver, Bgain = Ymax /Baver;for (int i = 0; i < img.getWidth(); i++) {for (int j = 0; j < img.getHeight(); j++) {

Color color= newColor(img.getRGB(i, j));int r = ensureColor((int) Math.floor(color.getRed() *Rgain));int g = ensureColor((int) Math.floor(color.getGreen() *Ggain));int b = ensureColor((int) Math.floor(color.getBlue() *Bgain));

img.setRGB(i, j,newColor(r, g, b).getRGB());

}

}

ImageIO.write(img,"jpg", new File("xxx.jpg"));

其中計算YCrCb的算法如下:

// https://mathematica.stackexchange.com/questions/29786/how-to-convert-rgb-to-ycbcr

private double[] toYCbCr(intcolor) {int r = (color >> 16) & 0xFF;int g = (color >> 8) & 0xFF;int b = color & 0xFF;double Y = 16 + (65.481 * r / 255 + 128.553 * g / 255 + 24.966 * b / 255);double Cb = 128 + (-37.797 * r / 255 - 74.203 * g / 255 + 112 * b / 255);double Cr = 128 + (112 * r / 255 - 93.786 * g / 255 - 18.214 * b / 255);return new double[] { Y, Cb, Cr };

}

最后還有一個像素范圍檢測:

private int ensureColor(doublecolor) {if (color < 0)return 0;if (color > 255)return 255;return (int) color;

}

實際效果:

效果非常好。我也看了下原作者的問題,應該是計算YCrCb出錯了。

本次分享完畢啦!好幾年沒有在博客園發文了,說下近況了。第一次進博客園是10多年前,在上海交大讀研究生的一個窮小孩。研究生畢業之后一直磕磕碰碰在創業,到了現在36了,仍然在創業。也許將來創業成功了,這些博客都能成為勵志經歷。不成功,那就繼續努力。

最近正在投身微信公眾號,也小有成就,做了全國最大的樂高公眾號。希望將來有一天能有所成。

感謝各位園友的閱讀,希望這篇文章有幫助!

總結

以上是生活随笔為你收集整理的阈值Java_亲测有效!一种完美动态阈值白平衡算法 Java实现。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 爱插美女网 | 最新91视频 | 日韩淫| 青青视频免费观看 | 精品国产视频一区二区三区 | 九九色播 | 日韩在线视屏 | 日本一区二区免费电影 | 成人乱人乱一区二区三区一级视频 | 成人在线免费视频观看 | 日韩欧美黄色大片 | 精品国产二区三区 | 中国一极毛片 | 五个女闺蜜把我玩到尿失禁 | 国产簧片| 亚洲视频播放 | 黑白配高清国语在线观看 | 一级免费黄色 | 精品成人免费一区二区在线播放 | 无码人妻精品丰满熟人区 | 亚洲高清网站 | 亚洲精品福利在线 | 欧美一区亚洲二区 | 国产区一二三 | 久久激情网 | 精品人妻一区二区三区免费 | 欧美日韩视频 | 成年人午夜 | 美女高潮网站 | 少妇高潮一区二区三区99 | 美日韩一级 | 尤物视频在线观看 | av网站国产 | 国产一区二区三区四区五区六区 | 超碰在线视屏 | 欧美中文字幕 | 午夜精品一区二区三区在线播放 | 欧美福利一区 | 国产在视频线精品视频 | aaa级黄色片| 久久精品国产一区二区电影 | а√在线中文网新版地址在线 | 亚洲无码乱码精品国产 | 亚洲国产一二 | 中文 日韩 欧美 | 亚洲自拍偷拍欧美 | 国产精品免费视频一区二区三区 | 青青草国产在线 | 蜜桃视频一区二区在线观看 | 中文字幕日本视频 | 尤物一区 | 日韩二区三区 | 美女被男人桶出白浆喷水 | 一区二区三区三区在线 | 国产在线无码精品 | 日韩乱码一区二区 | 女人脱裤子让男人捅 | 亚洲自拍偷拍色图 | 性感美女在线观看 | 国产一区二区三区麻豆 | 国产精品久久久无码一区 | 豆国产97在线 | 亚洲 | 中文在线亚洲 | 欢乐谷在线观看免费播放高清 | 国产又爽又黄游戏 | av中文在线播放 | 国产伦精品一区二区三区视频痴汉 | 99在线成人精品视频 | 欧美性猛交xxxx | 女性向av免费网站 | 91久久精品日日躁夜夜躁国产 | 色天天综合| www.日韩视频 | 久草福利资源站 | 日韩大胆视频 | 欧美国产黄色 | 无码国产精品一区二区色情男同 | 国模私拍一区二区三区 | 在线综合色 | 精品午夜一区二区 | 91av免费 | 少妇h视频 | 亚洲美女av在线 | 成人a级网站 | 欧美精品在线一区二区 | 日韩一区二区三区免费视频 | 日本在线 | 成人av网址在线 | 欧美福利一区二区三区 | 神马午夜888| 亚洲av女人18毛片水真多 | 日欧美女人 | 欧美日韩国产三区 | 日韩午夜 | 香蕉视频首页 | 七仙女欲春2一级裸体片 | 久久这里只有精品国产 | 精品一区二区三区毛片 | 96久久|