• 大小: 0M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: 其他
  • 标签: 其他  

资源简介

checkPicture.rar

资源截图

代码片段和文件信息

package myWeiXinID_simpleit8;

//Download by http://www.codefans.net
import java.awt.image.BufferedImage;

public class PicDataTools {

private int redBins;
private int greenBins;
private int blueBins;

public PicDataTools() {
redBins = greenBins = blueBins = 4;
}

public void setRedBinCount(int redBinCount) {
this.redBins = redBinCount;
}

public void setGreenBinCount(int greenBinCount) {
this.greenBins = greenBinCount;
}

public void setBlueBinCount(int blueBinCount) {
this.blueBins = blueBinCount;
}

public double[] filter(BufferedImage src BufferedImage dest) {
int width = src.getWidth();
int height = src.getHeight();

int[] inPixels = new int[width * height];
double[] histogramData = new double[redBins * greenBins* blueBins];
getRGB(src 0 0 width height inPixels);
int index = 0;
int redIdx = 0 greenIdx = 0 blueIdx = 0;
int singleIndex = 0;
double total = 0;
for (int row = 0; row < height; row++) {
//int ta = 0;
int tr = 0 tg = 0 tb = 0;
for (int col = 0; col < width; col++) {
index = row * width + col;
//ta = (inPixels[index] >> 24) & 0xff;
tr = (inPixels[index] >> 16) & 0xff;
tg = (inPixels[index] >> 8) & 0xff;
tb = inPixels[index] & 0xff;
redIdx = (int) getBinIndex(redBins tr 255);
greenIdx = (int) getBinIndex(greenBins tg 255);
blueIdx = (int) getBinIndex(blueBins tb 255);
singleIndex = redIdx + greenIdx * redBins
+ blueIdx * redBins * greenBins;
histogramData[singleIndex] += 1;
total += 1;
}
}

// start to normalize the histogram data
for (int i = 0; i < histogramData.length; i++) {
histogramData[i] = histogramData[i] / total;
}

return histogramData;
}

private double getBinIndex(int binCount int color int colorMaxValue) {
double binIndex = (((double) color) / ((double) colorMaxValue))
* ((double) binCount);
if (binIndex >= binCount)
binIndex = binCount - 1;
return binIndex;
}

public int[] getRGB(BufferedImage image int x int y int width
int height int[] pixels) {
int type = image.getType();
if (type == BufferedImage.TYPE_INT_ARGB
|| type == BufferedImage.TYPE_INT_RGB)
return (int[]) image.getRaster().getDataElements(x y
width height pixels);
return image.getRGB(x y width height pixels 0 width);
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2420  2018-05-26 08:29  checkPicture\PicDataTools.java

     文件       4369  2018-05-26 08:29  checkPicture\TestMain.java

     目录          0  2018-05-26 08:27  checkPicture

----------- ---------  ---------- -----  ----

                 6789                    3


评论

共有 条评论