java直方图打印代码 java图形打印

java画直方图,饼图的源码分析

我更改了一点,完善一点。希望你能理解

“只有客户发展了,才有我们的生存与发展!”这是成都创新互联公司的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对网站制作、成都网站制作、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。

import javax.swing.*;

import java.awt.*;

public class Histogram extends JPanel {

private int[] count;//方图的数值

private int x = 50;//x坐标为消饥枝50

public Histogram(){

this.count = new int[]{0,0,0,0,0};//默认count

repaint();

}

public Histogram(int[] count){

this.count = count;//传入count

repaint();

}

public void setHistogram(int[] count) {//设置count

this.count = count;

repaint();

}

@Override

protected void paintComponent(Graphics g) {

if (count == null) return; //如果没有数值就不绘制

super.paintComponent(g);

//设置五个拿敏方图显示的颜色不一样

Color[] color = {new Color(245,125,46),new Color(143,184,216),new Color(184,217,136),new Color(255,203,15),new Color(168,169,171)};

int width = getWidth();//方图的宽度

int height = getHeight();//方图的肢念高度

int interval = (width - 40) / count.length;//方图之间的间隔

int individualWidth = (int)(((width - 40) /5) * 0.60);//单个方图的宽度

int maxCount = 0;//方图的最大值,即高度

for (int i = 0; i count.length; i++) {//获得最大值

if (maxCount count[i])

maxCount = count[i];

}

maxCount+= 5 - maxCount%5;

//绘制背景

g.setColor(new Color(210,212,215));

g.fillRect(30, 30, width - 40, height - 75);

//绘制左边线、底边线和数

g.setColor(Color.BLACK);

g.drawLine(30, height - 45, width - 10, height - 45);//这条底边线重复,下面的for重画了

g.drawLine(30,30,30, height - 45);

g.drawString("数",5,15);//左上角写“数”字

//绘制六条行线和左边的数值标识

for(int i = 0, num = 45;i = maxCount;i+=maxCount/5){

g.drawString(i + "", 10,height-num );

g.drawLine(30, height - num, width - 10, height - num);

num +=((height-75)/5.0+0.3);

}

for (int i = 0; i count.length; i++) {

int barHeight =

(int)((count[i]/(maxCount/5.0))*((height-75)/5.0)-0.3);//获得在每个方图上方写数值的高度

// g.setColor(new Color(73,168,213));

//绘制方图

g.setColor(color[i]);

g.fillRect(x, height - 45 - barHeight, individualWidth,barHeight);

//在方图上方标识该数值

g.setColor(Color.black);

g.drawString(count[i]+"", x + individualWidth/2,height - 50 - barHeight);

//绘制底边的数值标识

g.setColor(Color.BLACK);

if(i==0){

g.drawString("60", x, height - 30);

}

else if(i==4){

g.drawString("90", x, height - 30);

}

else{

g.drawString((50+10*i) + "-" + (59+10*i) + "", x, height - 30);

}

x += interval;//保证了数值左边一定与方图左边线靠齐

}

}

}

求 JAVA语言 如何提取图像颜色特征和颜色直方图的方法

java.awt.Color 类用于封装默认 sRGB 颜色空间中的颜色,或者用于封装由 ColorSpace

标识的任意颜色空间中的颜色。每种颜色都有一个隐式的销丛坦 alpha 值 1.0,或者有一个在构造方法中提供的显式的 alpha 值。alpha

值定义了颜色的透明度,可用一个在 0.0 - 1.0 或 0 - 255 范围内的浮点值表示它。alpha 值为 1.0 或 255

则意味着颜色完全是不透明的,alpha 值为 0 或 0.0 则意味着颜色是完全透明的。在使用显式郑链的 alpha 值构造 Color

时,或者在获取某个 Color 的颜色/alpha 分量亏桐时,从不将颜色分量预乘 alpha 分量。

希望可以帮助到你.

如何使用Java和opencv来得到图像的H-S直方图?

//因为要计算H-S的直方图,所以需要得到一个HSV空间的图像

cvtColor(srcImage, hsvImage, CV_BGR2HSV);

imshow("【HSV空间的原图】"仔没, hsvImage);

//为计算直方图配置变量

//首先是需要计算的图像的通道,就是需要计算图像的哪个通道(bgr空间需要确定计算 b或g货r空间)

int channels[] = { 0, 1 };

//然后是配置输出的结果存储的 空间 ,用MatND类型来存储结果

MatND dstHist;

//接下来是直方图的每一个维度的 柱条的数目(就是将数值分组,共有多少组)

//如果这里写成int histSize = 256; 那么下面调用计算直方图念拆纳的函数的时候,该变量需要写 histSize

int histSize[] = { 30, 32 };

//最后是确定每个维度的取值范围,就是横坐标的总数

//首先得定御告义一个变量用来存储 单个维度的 数值的取值范围

float HRanges[] = { 0, 180 };

float SRanges[] = { 0, 256 };

const float *ranges[] = { HRanges, SRanges };


网站名称:java直方图打印代码 java图形打印
转载注明:http://scyanting.com/article/ddpgsoo.html