首页 > 解决方案 > 用 R 创建均衡直方图

问题描述

我有一个数据集 .txt ,其中包含三个矩阵,每个矩阵代表图像的 RGB 值!我没有图像(或任何图像文件)!如何创建每个矩阵的均衡直方图?我找到了histeq功能,但它似乎不正确!我设法做的是(这是显示数据的第一部分)

fr<-as.data.frame(table(unlist(r)))
fg<-as.data.frame(table(unlist(g)))
fb<-as.data.frame(table(unlist(b)))

fr1=(fr$Freq*100)/(15*15) fb1=(fb$Freq*100)/(15*15)
fg1=(fg$Freq*100)/(15*15)
fr2=cumsum(fr1) fg2=cumsum(fg1) fb2=cumsum(fb1)

r1<-data.frame(fr,fr1,fr2) names<-c("Values","2","Distribution
   Frequancy %","Cumalnative Distribution Frequency %")
   colnames(r1)<-names r1$Values <- as.numeric(as.character(r1$Values))

g1<-data.frame(fg,fg1,fg2) colnames(g1)<-names g1$Values <-
   as.numeric(as.character(g1$Values))

b1<-data.frame(fb,fb1,fb2) colnames(b1)<-names

b1$Values <- as.numeric(as.character(b1$Values))

这是我练习的第一部分!比我不得不:

hb1<-ggplot(data=b1, aes(b1$Values)) +    geom_histogram(breaks=seq(0,
260, by =20), 
                  col="white", 
                  aes(fill=..count..))+    labs(title="Ιστόγραμμα Συχνότητας Μπλε Καναλιού") +   labs(x="Τιμές", y="Συχνότητα")

hb2<-ggplot(data=b1, aes(b1$Values)) +    geom_histogram(breaks=seq(0,
260, by =20), 
                  col="white", 
                  aes(y=cumsum(..count..),fill=..count..))+    labs(title="Ιστόγραμμα Συχνότητας Μπλε Καναλιού") +   labs(x="Τιμές")

 hb3<-ggplot(data=b1, aes(histeq(b1$Values))) +   
 geom_histogram(breaks=seq(0, 260, by =20), 
                  col="white", 
                  aes(fill=..count..))+    labs(title="Ιστόγραμμα Εξίσωσης Μπλε Καναλιού") +   labs(x="Nέες Τιμές")

 # Κόκκινο

 hr1<-ggplot(data=r1, aes(r1$Values)) +    geom_histogram(breaks=seq(0,
 260, by =20), 
                  col="white", 
                  aes(fill=..count..))+    scale_fill_gradient("Count", low = "lightpink", high = "red")+    labs(title="Ιστόγραμμα Συχνότητας
 Κόκκινου Καναλιού") +   labs(x="Τιμές")

 hr2<-ggplot(data=r1, aes(r1$Values)) +    geom_histogram(breaks=seq(0,
 260, by =20), 
                  col="white", 
                  aes(y=cumsum(..count..),fill=..count..))+    scale_fill_gradient("Count", low = "lightpink", high = "red")+   
 labs(title="ΑΘροιστικό Ιστόγραμμα Κόκκινου Καναλιού") +  
 labs(x="Τιμές")

 hr3<-ggplot(data=r1, aes(histeq(r1$Values))) +   
 geom_histogram(breaks=seq(0, 260, by =20), 
                  col="white", 
                  aes(fill=..count..))+    scale_fill_gradient("Count", low = "lightpink", high = "red")+    labs(title="Ιστόγραμμα Εξίσωσης
 Κόκκινου Καναλιού") +   labs(x="Νέες Τιμές")

 #Πράσινο

 hg1<-ggplot(data=g1, aes(g1$Values)) +    geom_histogram(breaks=seq(0,
 260, by =20), 
                  col="white", 
                  aes(fill=..count..))+    scale_fill_gradient("Count", low = "lightgreen", high = "green")+    labs(title="Ιστόγραμμα
 Συχνότητας Πράσινου Καναλιού") +   labs(x="Τιμές")

 hg2<-ggplot(data=g1, aes(g1$Values)) +    geom_histogram(breaks=seq(0,
 260, by =20), 
                  col="white", 
                  aes(y=cumsum(..count..),fill=..count..))+   scale_fill_gradient("Count", low = "lightgreen", high = "green")+  
 labs(title="Αθροιστικό Ιστόγραμμα Πράσινου Καναλιού") +  
 labs(x="Τιμές")

 hg3<-ggplot(data=g1, aes(histeq(g1$Values))) +   
 geom_histogram(breaks=seq(0, 260, by =20), 
                  col="white", 
                  aes(fill=..count..))+   scale_fill_gradient("Count", low = "lightgreen", high = "green")+   labs(title="Ιστόγραμμα Εξίσωσης
 Πράσινου Καναλιού") +   labs(x="Νέες Τιμές")

但是这样!使用histeq我没有矩阵,而是一个新值的新数组。我想要具有均衡直方图值的新矩阵

标签: rhistogram

解决方案


推荐阅读