日韩性视频-久久久蜜桃-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实现。的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人av影院 | 深夜视频在线观看免费 | 杨贵妃颤抖双乳呻吟求欢小说 | 人妻在卧室被老板疯狂进入 | 国产a v一区二区三区 | 内射干少妇亚洲69xxx | 婷婷成人av | 国产精品suv一区二区69 | 黄a大片 | 成人免费观看网站 | 日韩a级片 | 日韩影院在线 | 91久久久久久久久久 | 久久www视频| 亚洲一区二区自拍 | 欧美激情一二三 | 成人免费视频国产免费 | 成人国产片女人爽到高潮 | 亚洲手机在线 | 黄色网址多少 | 日日爽 | 天天尻| 美女网站在线免费观看 | 久久久久一级 | 成年网站在线观看 | 精品亚洲国产成av人片传媒 | 精品一区二区三区免费视频 | 夜夜小视频 | 3o一40一50一6o女人毛片 | 老司机成人免费视频 | 亚洲成人免费电影 | 午夜视频福利在线观看 | 自拍愉拍| 一区二区国产精品 | 双性尿奴穿贞c带憋尿 | 亚洲成人精品一区二区三区 | 欧美色频 | 理论片久久| 国产一区二区免费视频 | 日韩网站在线观看 | 性色视频网站 | 国产伦精品一区三区精东 | 欧美精品二区三区四区免费看视频 | 天堂а在线中文在线新版 | 国产精品欧美综合 | 欧美亚洲成人网 | 成人影视在线看 | 亚洲一区二区三区在线视频观看 | www日本xxx| 国产成人欧美一区二区三区91 | 韩国在线不卡 | 禁断介护av一区二区 | av在线一 | 亚洲激情一区 | 奇米第四色首页 | 少妇无内裤下蹲露大唇视频 | av导航大全| 各种含道具高h调教1v1男男 | 国产精品欧美大片 | 亚州精品国产精品乱码不99按摩 | 免费大片黄在线观看视频网站 | 播放毛片| 日本天堂网在线观看 | 免费观看黄色小视频 | 青青草97 | 亚洲国产精品久久久久爰色欲 | 超碰成人在线观看 | 超碰香蕉| 激情综合站 | 黄色一级大片免费版 | 久久曰视频 | 日韩视频在线观看二区 | 男人天堂社区 | 美女超碰在线 | 你懂的网站在线观看 | 免费三级av | 又黄又爽的网站 | 天堂在线| 美女被草视频在线观看 | 午夜免费激情视频 | 外国毛片| 男女草比视频 | 欧美精品v| 久久久久无码精品国产 | 午夜窝窝 | 国产美女免费看 | 天堂av在线免费 | 亚洲精品四区 | 性一交一乱一色一免费无遮挡 | 亚洲精品乱码久久久久久按摩观 | 影音先锋欧美资源 | 亚洲精品97| 国产黄色自拍 | 外国电影免费观看高清完整版 | 一区二区 亚洲 | 日本少妇xxxx动漫 | 老司机深夜影院 | 日本色www| 草草影院国产 |