我更改了一點(diǎn),完善一點(diǎn)。希望你能理解
“只有客戶(hù)發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)公司的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線(xiàn),而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無(wú)止境。
import javax.swing.*;
import java.awt.*;
public class Histogram extends JPanel {
private int[] count;//方圖的數(shù)值
private int x = 50;//x坐標(biāo)為消饑枝50
public Histogram(){
this.count = new int[]{0,0,0,0,0};//默認(rèn)count
repaint();
}
public Histogram(int[] count){
this.count = count;//傳入count
repaint();
}
public void setHistogram(int[] count) {//設(shè)置count
this.count = count;
repaint();
}
@Override
protected void paintComponent(Graphics g) {
if (count == null) return; //如果沒(méi)有數(shù)值就不繪制
super.paintComponent(g);
//設(shè)置五個(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);//單個(gè)方圖的寬度
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);
//繪制左邊線(xiàn)、底邊線(xiàn)和數(shù)
g.setColor(Color.BLACK);
g.drawLine(30, height - 45, width - 10, height - 45);//這條底邊線(xiàn)重復(fù),下面的for重畫(huà)了
g.drawLine(30,30,30, height - 45);
g.drawString("數(shù)",5,15);//左上角寫(xiě)“數(shù)”字
//繪制六條行線(xiàn)和左邊的數(shù)值標(biāo)識(shí)
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è)方圖上方寫(xiě)數(shù)值的高度
// g.setColor(new Color(73,168,213));
//繪制方圖
g.setColor(color[i]);
g.fillRect(x, height - 45 - barHeight, individualWidth,barHeight);
//在方圖上方標(biāo)識(shí)該數(shù)值
g.setColor(Color.black);
g.drawString(count[i]+"", x + individualWidth/2,height - 50 - barHeight);
//繪制底邊的數(shù)值標(biāo)識(shí)
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;//保證了數(shù)值左邊一定與方圖左邊線(xiàn)靠齊
}
}
}
java.awt.Color 類(lèi)用于封裝默認(rèn) sRGB 顏色空間中的顏色,或者用于封裝由 ColorSpace
標(biāo)識(shí)的任意顏色空間中的顏色。每種顏色都有一個(gè)隱式的銷(xiāo)叢坦 alpha 值 1.0,或者有一個(gè)在構(gòu)造方法中提供的顯式的 alpha 值。alpha
值定義了顏色的透明度,可用一個(gè)在 0.0 - 1.0 或 0 - 255 范圍內(nèi)的浮點(diǎn)值表示它。alpha 值為 1.0 或 255
則意味著顏色完全是不透明的,alpha 值為 0 或 0.0 則意味著顏色是完全透明的。在使用顯式鄭鏈的 alpha 值構(gòu)造 Color
時(shí),或者在獲取某個(gè) Color 的顏色/alpha 分量虧桐時(shí),從不將顏色分量預(yù)乘 alpha 分量。
希望可以幫助到你.
//因?yàn)橐?jì)算H-S的直方圖,所以需要得到一個(gè)HSV空間的圖像
cvtColor(srcImage, hsvImage, CV_BGR2HSV);
imshow("【HSV空間的原圖】"仔沒(méi), hsvImage);
//為計(jì)算直方圖配置變量
//首先是需要計(jì)算的圖像的通道,就是需要計(jì)算圖像的哪個(gè)通道(bgr空間需要確定計(jì)算 b或g貨r空間)
int channels[] = { 0, 1 };
//然后是配置輸出的結(jié)果存儲(chǔ)的 空間 ,用MatND類(lèi)型來(lái)存儲(chǔ)結(jié)果
MatND dstHist;
//接下來(lái)是直方圖的每一個(gè)維度的 柱條的數(shù)目(就是將數(shù)值分組,共有多少組)
//如果這里寫(xiě)成int histSize = 256; 那么下面調(diào)用計(jì)算直方圖念拆納的函數(shù)的時(shí)候,該變量需要寫(xiě) histSize
int histSize[] = { 30, 32 };
//最后是確定每個(gè)維度的取值范圍,就是橫坐標(biāo)的總數(shù)
//首先得定御告義一個(gè)變量用來(lái)存儲(chǔ) 單個(gè)維度的 數(shù)值的取值范圍
float HRanges[] = { 0, 180 };
float SRanges[] = { 0, 256 };
const float *ranges[] = { HRanges, SRanges };
當(dāng)前標(biāo)題:java直方圖打印代碼 java圖形打印
網(wǎng)頁(yè)路徑:http://jinyejixie.com/article0/ddpgsoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、網(wǎng)站收錄、Google、微信公眾號(hào)、網(wǎng)站改版、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)