基礎(chǔ)版本的基礎(chǔ)版本 直方圖均衡化系列
我們最終所需要的算法名字是:Contrast Limited Adaptive Histogram Equalization限制對比度自適應(yīng)直方圖均衡化,每個單詞取首字母可以縮寫為:CLAHE
直方圖的原理以及作用可以參考這里,總之就是,算最終的均衡化是經(jīng)歷過計算直方圖以及累積分布直方圖兩個過程,其理論基礎(chǔ)在參考的文獻里解釋的非常清楚.但是從原始的HE到CLAHE中間經(jīng)歷了多個優(yōu)化算法,網(wǎng)上很少有直觀的代碼實現(xiàn),好不容易在這篇文章里找到.下面的介紹主要是結(jié)合代碼,進行部分解釋說明.
直方圖均衡化,HE:
(資料圖片僅供參考)
這個是最基礎(chǔ)版本,代碼表現(xiàn)的很清楚
Mat eaualizeHist_GO(Mat src){ int width = src.cols; int height= src.rows; Mat HT_GO = src.clone(); int tmp[256] ={0}; float C[256] = {0.0}; int total = width*height; for (int i=0 ;i(i,j); tmp[index] ++; } } //計算累積函數(shù) for(int i = 0;i < 256 ; i++){ if(i == 0) C[i] = 1.0f * tmp[i] / total; else C[i] = C[i-1] + 1.0f * tmp[i] / total; } //這里的累積函數(shù)分配的方法非常直觀高效 for(int i = 0;i < src.rows;i++){ for(int j = 0;j < src.cols;j++){ int index = src.at(i,j); HT_GO.at(i,j) = C[index] * 255 ; } } return HT_GO;}
自適應(yīng)直方圖均衡化,AHE:
把整個大圖分成8X8=64份,當(dāng)然,這里的舉例圖像的長寬正好是8的倍數(shù).寫入到存儲直方圖的數(shù)組的順序是按照沒一行的從左到右, 一共八行.
Mat aheGO(Mat src,int _step = 8){ Mat AHE_GO = src.clone(); int block = _step; int width = src.cols; int height = src.rows; int width_block = width/block; //每個小格子的長和寬 int height_block = height/block; //存儲各個直方圖 int tmp2[8*8][256] ={0}; float C2[8*8][256] = {0.0}; //分塊 int total = width_block * height_block; for (int i=0;i<BLOCK;I++){ for="" (int="" j="0;j<block;j++){" int="" index="src.at<uchar" start_x="i*width_block;" width_block;="" start_y="j*height_block;" +="" height_block;="" num="i+block*j;" 遍歷小塊,計算直方圖="" ii="start_x" end_x="start_x" ii++)="" for(int="" jj="start_y" (jj,ii); tmp2[num][index]++; } } //計算累積分布直方圖 for(int k = 0 ; k < 256 ; k++){ if( k == 0) C2[num][k] = 1.0f * tmp2[num][k] / total; else C2[num][k] = C2[num][k-1] + 1.0f * tmp2[num][k] / total; } } } //將統(tǒng)計結(jié)果寫入 for (int i=0;i<BLOCK;I++){ for="" (int="" j="0;j<block;j++){" int="" index="src.at<uchar" start_x="i*width_block;" width_block;="" start_y="j*height_block;" +="" height_block;="" num="i+block*j;" 遍歷小塊,計算直方圖="" ii="start_x" end_x="start_x" for(int="" jj="start_y" (jj,ii); //結(jié)果直接寫入AHE_GO中去 AHE_GO.at(jj,ii) = C2[num][index] * 255 ; } } } } return AHE_GO;}
限制對比度直方圖均衡化:CLHE.
對比度指的是一副圖片中最亮的白和最暗的黑之間的反差大小=(max-min)/(max+min).對比度增強可以使用線性拉伸的方式,即,直接將(min1,max1)的范圍擴大到(min2,max2).但是對于比較復(fù)雜的圖片沒有什么效果.直方圖均衡化,也是一種拉伸對比度的方式.
HE算法在一種情況下,效果不好,如果一個圖片中有大塊的暗區(qū)或者亮區(qū)的話,效果非常不好。這個的原因,也非常好理解,因為HE其實要求一個圖片中必須有10%的最亮的像素點,必須有10%第二亮的像素點,必須有10%第三亮的像素點……假設(shè)有一張純黑的圖片,你想想經(jīng)過HE處理之后,會出現(xiàn)什么情況?答案就是一部分黑的像素也會被強行搞成白的.來自.
因此單純的直方圖均衡化,AH比較適合一副圖像整體偏暗或者亮.如果局部有個比較亮或者暗的,就會多出很多干擾信息.因此進行對比度限制,可以減弱帶來的不利影響.
主要體現(xiàn)在:
假如左圖為原圖的直方圖,在計算累積函數(shù)的時候,先轉(zhuǎn)換成右圖.這樣可以達到限制對比度的功能.即進行削峰,并將削下來的量均勻的分配給每個色階(或者亮度值).
Mat clheGO(Mat src,int _step = 8){ int width = src.cols; int height= src.rows; Mat CLHE_GO = src.clone(); int tmp[256] ={0}; float C[256] = {0.0}; int total = width*height; for (int i=0 ;i(i,j); tmp[index] ++; } } /限制對比度計算部分,注意這個地方average的計算不一定科學(xué) int average = width * height / 255/64; int LIMIT = 4 * average; int steal = 0; for(int k = 0 ; k < 256 ; k++){ if(tmp[k] > LIMIT){ steal += tmp[k] - LIMIT; tmp[k] = LIMIT; } } int bonus = steal/256; //hand out the steals averagely for(int k = 0 ; k < 256 ; k++){ tmp[k] += bonus; } /// //計算累積函數(shù) for(int i = 0;i < 256 ; i++){ if(i == 0) C[i] = 1.0f * tmp[i] / total; else C[i] = C[i-1] + 1.0f * tmp[i] / total; } //這里的累積函數(shù)分配的方法非常直觀高效 for(int i = 0;i < src.rows;i++){ for(int j = 0;j < src.cols;j++){ int index = src.at(i,j); CLHE_GO.at(i,j) = C[index] * 255 ; } } return CLHE_GO;}
CLAHE
將上面的AHE結(jié)合就是不帶有插值算法的CLAHE:
Mat claheGoWithoutInterpolation(Mat src, int _step = 8){ Mat CLAHE_GO = src.clone(); int block = _step;//pblock int width = src.cols; int height= src.rows; int width_block = width/block; //每個小格子的長和寬 int height_block = height/block; //存儲各個直方圖 int tmp2[8*8][256] ={0}; float C2[8*8][256] = {0.0}; //分塊 int total = width_block * height_block; for (int i=0;i<BLOCK;I++){ for="" (int="" j="0;j<block;j++){" int="" index="src.at<uchar" start_x="i*width_block;" width_block;="" start_y="j*height_block;" +="" height_block;="" num="i+block*j;" 遍歷小塊,計算直方圖="" ii="start_x" end_x="start_x" for(int="" jj="start_y" (jj,ii); tmp2[num][index]++; } } //裁剪和增加操作,也就是clahe中的cl部分 //這里的參數(shù) 對應(yīng)《Gem》上面 fCliplimit = 4 , uiNrBins = 255 int average = width_block * height_block / 255; int LIMIT = 4 * average; int steal = 0; for(int k = 0 ; k < 256 ; k++){ if(tmp2[num][k] >LIMIT){ steal += tmp2[num][k] - LIMIT; tmp2[num][k] = LIMIT; } } int bonus = steal/256; //hand out the steals averagely for(int k = 0 ; k < 256 ; k++){ tmp2[num][k] += bonus; } //計算累積分布直方圖 for(int k = 0 ; k < 256 ; k++){ if( k == 0) C2[num][k] = 1.0f * tmp2[num][k] / total; else C2[num][k] = C2[num][k-1] + 1.0f * tmp2[num][k] / total; } } } //計算變換后的像素值 //將統(tǒng)計結(jié)果寫入 for (int i=0;i<BLOCK;I++){ for="" (int="" j="0;j<block;j++){" int="" index="src.at<uchar" start_x="i*width_block;" width_block;="" start_y="j*height_block;" +="" height_block;="" num="i+block*j;" 遍歷小塊,計算直方圖="" ii="start_x" end_x="start_x" for(int="" jj="start_y" (jj,ii); //結(jié)果直接寫入AHE_GO中去 CLAHE_GO.at(jj,ii) = C2[num][index] * 255 ; } } } } return CLAHE_GO;}
這樣的結(jié)果會有嚴(yán)重的網(wǎng)格感覺,需要使用插值的方式進行解決:
Mat claheGO(Mat src,int _step = 8){ Mat CLAHE_GO = src.clone(); int block = _step;//pblock int width = src.cols; int height= src.rows; int width_block = width/block; //每個小格子的長和寬 int height_block = height/block; //存儲各個直方圖 int tmp2[8*8][256] ={0}; float C2[8*8][256] = {0.0}; //分塊 int total = width_block * height_block; for (int i=0;i<BLOCK;I++) for="" (int="" j="0;j<block;j++)" int="" index="src.at<uchar" start_x="i*width_block;" width_block;="" start_y="j*height_block;" +="" height_block;="" num="i+block*j;" 遍歷小塊,計算直方圖="" ii="start_x" end_x="start_x" ii++)="" for(int="" jj="start_y" (jj,ii); tmp2[num][index]++; } } //裁剪和增加操作,也就是clahe中的cl部分 //這里的參數(shù) 對應(yīng)《Gem》上面 fCliplimit = 4 , uiNrBins = 255 int average = width_block * height_block / 255; //關(guān)于參數(shù)如何選擇,需要進行討論。不同的結(jié)果進行討論 //關(guān)于全局的時候,這里的這個cl如何算,需要進行討論 int LIMIT = 40 * average; int steal = 0; for(int k = 0 ; k < 256 ; k++) { if(tmp2[num][k] > LIMIT){ steal += tmp2[num][k] - LIMIT; tmp2[num][k] = LIMIT; } } int bonus = steal/256; //hand out the steals averagely for(int k = 0 ; k < 256 ; k++) { tmp2[num][k] += bonus; } //計算累積分布直方圖 for(int k = 0 ; k < 256 ; k++) { if( k == 0) C2[num][k] = 1.0f * tmp2[num][k] / total; else C2[num][k] = C2[num][k-1] + 1.0f * tmp2[num][k] / total; } } } //計算變換后的像素值 //根據(jù)像素點的位置,選擇不同的計算方法 for(int i = 0 ; i < width; i++) { for(int j = 0 ; j < height; j++) { //four coners if(i <= width_block/2 && j < = height_block/2) { int num = 0; CLAHE_GO.at(j,i) = (int)(C2[num][CLAHE_GO.at(j,i)] * 255); }else if(i <= 2="" j="">= ((block-1)*height_block + height_block/2)){ int num = block*(block-1); CLAHE_GO.at(j,i) = (int)(C2[num][CLAHE_GO.at(j,i)] * 255); }else if(i >= ((block-1)*width_block+width_block/2) && j <= int="" num="block-1;" else="" i="">= ((block-1)*width_block+width_block/2) && j >= ((block-1)*height_block + height_block/2)){ int num = block*block-1; CLAHE_GO.at(j,i) = (int)(C2[num][CLAHE_GO.at(j,i)] * 255); } //four edges except coners else if( i <= 2="" int="" num_i="0;" num_j="(j" -="" num1="num_j*block" num2="num1" float="" p="(j" q="1-p;" else="" i="">= ((block-1)*width_block+width_block/2)){ //線性插值 int num_i = block-1; int num_j = (j - height_block/2)/height_block; int num1 = num_j*block + num_i; int num2 = num1 + block; float p = (j - (num_j*height_block+height_block/2))/(1.0f*height_block); float q = 1-p; CLAHE_GO.at(j,i) = (int)((q*C2[num1][CLAHE_GO.at(j,i)]+ p*C2[num2][CLAHE_GO.at(j,i)])* 255); }else if( j <= 2="" int="" num_i="(i" -="" num_j="0;" num1="num_j*block" num2="num1" float="" p="(i" q="1-p;" else="" j="">= ((block-1)*height_block + height_block/2) ){ //線性插值 int num_i = (i - width_block/2)/width_block; int num_j = block-1; int num1 = num_j*block + num_i; int num2 = num1 + 1; float p = (i - (num_i*width_block+width_block/2))/(1.0f*width_block); float q = 1-p; CLAHE_GO.at(j,i) = (int)((q*C2[num1][CLAHE_GO.at(j,i)]+ p*C2[num2][CLAHE_GO.at(j,i)])* 255); } //雙線性插值 else{ int num_i = (i - width_block/2)/width_block; int num_j = (j - height_block/2)/height_block; int num1 = num_j*block + num_i; int num2 = num1 + 1; int num3 = num1 + block; int num4 = num2 + block; float u = (i - (num_i*width_block+width_block/2))/(1.0f*width_block); float v = (j - (num_j*height_block+height_block/2))/(1.0f*height_block); CLAHE_GO.at(j,i) = (int)((u*v*C2[num4][CLAHE_GO.at(j,i)] + (1-v)*(1-u)*C2[num1][CLAHE_GO.at(j,i)] + u*(1-v)*C2[num2][CLAHE_GO.at(j,i)] + v*(1-u)*C2[num3][CLAHE_GO.at(j,i)]) * 255); } //最后這步,類似高斯平滑 CLAHE_GO.at(j,i) = CLAHE_GO.at(j,i) + (CLAHE_GO.at(j,i) << 8) + (CLAHE_GO.at(j,i) << 16); } } return CLAHE_GO;}
插值的方式就是根據(jù)一個點周圍四個點的值來確定.只是說其值為累積分布直方圖的值.分成64個塊.每個塊又分成四個小塊.整個圖像的四個頂點所在的小塊不用插值.除此之外的四個邊采用"單"線性插值.剩下的為雙線性插值.因此可以簡單的理解為,只有相鄰的小塊才會進行插值.
整體來講上面遺留了兩個問題:
int average = width_block * height_block / 255; int LIMIT = 40 * average; int steal = 0;
1、在進行CLAHE中CL的計算,也就是限制對比度的計算的時候,參數(shù)的選擇缺乏依據(jù)。在原始的《GEMS》中提供的參數(shù)中, fCliplimit = 4 , uiNrBins = 255.但是在OpenCV的默認(rèn)參數(shù)中,這里是40.就本例而言,如果從結(jié)果上反推,我看10比較好。這里參數(shù)的選擇缺乏依據(jù);
2、CLHE是可以用來進行全局直方圖增強的,那么這個時候,這個average 如何計算,肯定不是width * height/255,這樣就太大了,算出來的LIMIT根本沒有辦法獲得。
優(yōu)化
該博主的圖像處理系列很值得細(xì)細(xì)品味。這里也結(jié)合他對直方圖均衡化系列的文章,提取出比較新穎的觀點進行總結(jié)。
一:三通道聯(lián)合處理:
for (Y = 0; Y < Height; Y++){ Pointer = Scan0 + Y * Stride; // 定位到每個掃描行的第一個像素,以避免溶于數(shù)據(jù)的影響 for (X = 0; X < Width; X++){ HistGram[*Pointer]++; // Blue HistGram[*(Pointer + 1)]++; // Green HistGram[*(Pointer + 2)]++; // Red Pointer += 3; // 移向下一個像素 } } Num = 0; for (Y = 0; Y < 256; Y++){ Num = Num + HistGram[Y]; Lut[Y] = (byte)((float)Num / (Width * Height * 3) * 255); // 計算映射表 } for (Y = 0; Y < Height; Y++){ Pointer = Scan0 + Y * Stride; for (X = 0; X < Width * 3; X += 3){ Pointer[X] = Lut[Pointer[X]]; Pointer[X + 1] = Lut[Pointer[X + 1]]; Pointer[X + 2] = Lut[Pointer[X + 2]]; } }
二:強化的基于局部直方圖裁剪均衡化的對比度調(diào)節(jié)算法
比如說該篇中除了提到了局部直方圖和全局直方圖以及亮度分量的融合方法,也對累積分布直方圖中(局部均衡化后映射表)的平滑思想做了介紹:
第一種思想就是,將色階(bins,比如256)均勻分成K(比如說是32)份,每份的開始的值和索引(原始像素值)構(gòu)成二維序列點。這樣根據(jù)這K個點可以擬合出一條平滑曲線。這個曲線插值成離散的后即可成為新的映射表。這樣的累積分布直方圖就會更加的平滑。
第二種思想就是,將映射表(累計分布直方圖)中的值,進行一維的均值或者高斯濾波,同樣也可以達到平滑的作用。
三:自動色階
這篇是基于自動色階的算法來實現(xiàn)的圖像增強,首先,自動色階是另外一種裁剪直方圖的方式,通過設(shè)置lowcut和highcut兩個參數(shù)來確定裁剪直方圖兩頭的程度,裁剪的兩端設(shè)置為極端值(比如說0或者1),中間的在重新映射到0-1(0-255)的范圍,使像素值進行拉伸(可以線性,即拉伸時的系數(shù)為1,也可以gamma曲線的方式),從而達到對比度增強的效果。
# 裁剪PixelAmount = Width * Height "所有像素的數(shù)目 Sum = 0 For Y = 0 To 255 Sum = Sum + HistBlue(Y) If Sum >= PixelAmount * LowCut * 0.01 Then "注意PS界面里的那個百分號 MinBlue = Y "得到藍色分量的下限 Exit For "退出循環(huán) End If Next Sum = 0 For Y = 255 To 0 Step -1 Sum = Sum + HistBlue(Y) If Sum >= PixelAmount * HighCut * 0.01 Then "注意PS界面里的那個百分號 MaxBlue = Y "得到藍色分量的上限 Exit For "退出循環(huán) End If Next# 映射 For Y = 0 To 255 If Y <= 0="" minblue="" then="" elseif="" y="">= MaxBlue Then BlueMap(Y) = 255 Else BlueMap(Y) = (Y - MinBlue) / (MaxBlue - MinBlue) * 255 "線性映射 End If Next
自動對比度與自動色階稍有不同的地方是自動色階各通道(對于多通道,如果是灰度圖這種單通道,兩者算法一樣),動對比度算法首先獲取三個通道下限值的最小值,以及上限值的最大值,然后以此為新的上下限,計算映射表。
上面提到,在拉伸過程中,也可以使用gamma矯正的方式,即在這里:
((Y - Min) / (Max - Min)) * 255
線性拉伸為1,gamma的方式可以為:
pow((float)(Y - Min) / (Max - Min), Gamma) * 255
gamma的值可以根據(jù)如下求得:
float Avg = 0, Mean = 0, Sum = 0; for (int Y = 0; Y < 256; Y++) { Sum += Histgram[Y]; Avg += Y * Histgram[Y]; } Mean = Avg / Sum; float Gamma = log(0.5f) / log((float)(Mean - Min) / (Max - Min)); if (Gamma < 0.1f) Gamma = 0.1f; else if (Gamma > 10) Gamma = 10;
局部自適應(yīng)自動色階除了上面介紹的自動色階方法還結(jié)合了CLAHE,當(dāng)然這里的自適應(yīng)限制對比度直方圖均衡話中的限制就不需要了,因為限制也是一種裁剪方式。在計算最后的裁剪位置后,還可以通過設(shè)置一個參數(shù)來進行調(diào)整對比度的程度。
void MakeMapping(int* Histgram,float CutLimit=0.01,float Contrast = 1){ int I, Sum = 0, Amount = 0; const int Level = 256; for (I = 0; I < Level; I++) Amount += Histgram[I]; int MinB =0 ,MaxB=255; int Min = 0,Max=255; for (I = 0; I < Level; I++){ if (Histgram[I]!=0){ Min = I ; break;} } for(I = Level-1; I >= 0; I--){ if (Histgram[I]!=0){ Max = I ; break;} } for (I = 0; I < Level; I++){ Sum = Sum + Histgram[I]; if (Sum >= Amount * CutLimit){ MinB = I; break;} } Sum = 0; for(I = Level-1; I >= 0; I--){ Sum = Sum +Histgram[I]; if (Sum >= Amount * CutLimit ){ MaxB = I ; break;} } int Delta = (Max - Min) * Contrast * 0.5 ; Min = Min - Delta; Max = Max + Delta ; if (Min < 0) Min = 0; if (Max > 255) Max = 255; if (MaxB!=MinB){ for (I = 0; I < Level; I++){ if (IMaxB) Histgram[I]=Max; else Histgram[I] = (Max-Min)* (I - MinB) / (MaxB - MinB) + Min ; } } else{ for (I = 0; I < Level; I++) Histgram[I]=MaxB; // 必須有,不然會有一些圖像平坦的部位效果出錯 }}
圖像增強
整理上面提到博主的一些其他圖像增強的方法。
這里提到的增強平時常用的一種銳化方法,過程即是將圖像分為高低頻,然后高頻部分的乘以一個大于1的系數(shù)。這樣得到的原圖的邊緣部分就會放大,達到了銳化或?qū)Ρ榷仍鰪姷男Ч?/p>
系數(shù)的選擇可以使用動態(tài)的方法,這樣可以避免某些地方過大的銳化造成的震鈴現(xiàn)象。D可以使用全局平均值或者全局均方差。
這里提到的是(多尺度視網(wǎng)膜增強算法)MSRCR的色彩增強算法。主要是根據(jù)下面的公式來:
Log[R(x,y)] = Log[I(x,y)]-Log[L(x,y)]
I是原始圖像,R是增強后的圖像,L為原圖經(jīng)過高斯或者均值模糊后的圖片。后面提到的尺度也就是模糊核的半徑。
通過上式反推出R,即增強后的圖像。文章中提到的量化算法比較新穎。本來求解中涉及到的log函數(shù)需要通過exp才能的出R,但是可以通過求解log[R(x,y)](value)的最大(max)最小(min)值后,線性方法的方式得到量化結(jié)果。不知道為什么這樣做,難道只是為了提速?
R(x,y) = ( Value - Min ) / (Max - Min) * (255-0)
所謂的多尺度就是進行多個尺度的模糊,然后進行權(quán)重求和。
Log[R(x,y)] = Log[R(x,y)] + Weight(i)* ( Log[Ii(x,y)]-Log[Li(x,y)])
其中Weight(i)表示每個尺度對應(yīng)的權(quán)重,要求各尺度權(quán)重之和必須為1,經(jīng)典的取值為等權(quán)重。
但是,SSR(單尺度)和MSR(多尺度)在最大尺度相同的時候效果誰好誰壞不太好說。
這種方式會導(dǎo)致色差,解決的方式一般可以通過一下過程:
(1)分別計算出 Log[R(x,y)]中R/G/B各通道數(shù)據(jù)的均值Mean和均方差Var(注意是均方差)。 (2)利用類似下述公式計算各通道的Min和Max值。 Min = Mean - Dynamic * Var; Max = Mean + Dynamic * Var; (3) 對Log[R(x,y)]的每一個值Value,進行線性映射: R(x,y) = ( Value - Min ) / (Max - Min) * (255-0) ,同時要注意增加一個溢出判斷,即: if (R(x,y) > 255) R(x,y) =255; else if (R(x,y) < 0) R(x,y)=0;
Dynamic取值越小,圖像的對比度月想,一般為2-3能取得比較好的效果。
這里是一種gamma矯正的方式進習(xí)慣你對比度增強的算法。主要是進行一個動態(tài)的gamma值。使得小于128的像素使用gamma值為0-1的范圍,從而使原來的元素值變大。反之,亦然。并且距離中心128越遠,gamma值的變化會越劇烈。
其中,BFmask是雙邊濾波或者均值濾波模糊后的圖像。 α一般取2。也可以動態(tài)矯正,比如說,對于低對比度的圖像,應(yīng)該需要較強烈的校正,因此α值應(yīng)該偏大,而對于有較好對比度的圖,α值應(yīng)該偏向于1,從而產(chǎn)生很少的校正量。
對于三種通道RGB的的處理方式,除了三通道分別處理外,也可以使用如下方式:
一:原圖轉(zhuǎn)換到Y(jié)UV或者HSV這中帶亮度的顏色空間中,然后用新得到的luminance值代替Y通道或V通道,然后在轉(zhuǎn)換會RGB空間
二:新的luminance值和原始luminance值的比值作為三通到的增強系數(shù),這樣三通道可以得到同樣程度的增強。
三:可以根據(jù)該公式:
第一種方法容易出現(xiàn)結(jié)果圖色彩偏淡,第二種每個分量易出現(xiàn)過飽和,第三種可能要稍微好一點,建議使用第三種。
標(biāo)簽:
相關(guān)推薦:
精彩放送:
- []鋒龍股份:公司首發(fā)募集資金和可轉(zhuǎn)債募集資金投資項目正按項目計劃在緊鑼密鼓地建設(shè)和籌備工作中
- []科恒股份:公司的主營業(yè)務(wù)為鋰電智能裝備及鋰離子正極材料,沒有涉足下游電芯制造
- []世界速看:普洛斯倉儲物流封閉式基礎(chǔ)設(shè)施公募REITs狀態(tài)更新為“已反饋”
- []世界熱文:ST愛迪爾:公司負(fù)債及現(xiàn)金流情況詳見公司最新定期報告
- []【熱聞】雅居樂集團與農(nóng)行廣東分行簽約 后者在同等條件下優(yōu)先為雅居樂提供必要綜合融資服務(wù)
- []廣州知識城攜北京華瑞錦泰以3.07億元競得廣州黃埔區(qū)一宗商地
- []駿成科技:此輪疫情對公司的生產(chǎn)以及業(yè)績影響不大,從公司公布的三季報數(shù)據(jù)可見
- []成人補鈣吃什么鈣片好?金丐醋酸鈣科學(xué)補鈣更輕松
- []環(huán)球今亮點!深圳峰匯創(chuàng)投發(fā)展擬轉(zhuǎn)讓長興中建投38.5%股權(quán) 底價1.62億元
- []重慶輪船集團掛牌宜賓天港物流40%股權(quán)及債權(quán) 轉(zhuǎn)讓底價為199萬元
- []僑銀股份新增投資霸州僑銀環(huán)保科技 持股比例100%
- []華發(fā)股份:公司已披露定增預(yù)案,具體內(nèi)容詳見公司于12月6日上海證券交易所網(wǎng)站披露的公告
- []一起教育科技發(fā)布2022年三季度財報:業(yè)績穩(wěn)中向好,連續(xù)四個季度實現(xiàn)盈利
- []全球觀天下!安徽滁州超29億元成交九宗地塊 總出讓面積848畝
- []長春3.86億元掛牌5宗地 總出讓面積37.28萬平米
- []當(dāng)前快訊:珍寶島:公司的參股公司安徽九洲方圓制藥有限公司有飲片業(yè)務(wù),據(jù)了解,目前業(yè)務(wù)規(guī)模營收億元左右
- []全球快消息!海航科技與天津信托和解
- []當(dāng)前速訊:賣地發(fā)工資的邏輯
- []全球視訊!“三支箭”出弓地產(chǎn)度過“最難時光”?43只地產(chǎn)債大幅反彈近一月漲幅翻倍
- []互聯(lián)網(wǎng)巨頭也要跨界儲能?
- []當(dāng)前消息!1000000000元!環(huán)保龍頭成立電池儲能公司
- []機會?蔚藍鋰芯電池生產(chǎn)線改造投產(chǎn)
- []全球時訊:3分鐘!電池儲能安全問題解決了?
- []什么是分布式儲能?分布式儲能系統(tǒng)有哪些功能?
- []環(huán)球報道:自費社保一年需交多少 社保自費一年得交多少錢
- []微資訊!從上海離職了怎么把公積金取出來,可分為三個步驟
- []天天滾動:青竹畫材科創(chuàng)板IPO進程終止:原計劃募資4億元,劉其通為控股股東
- []【全球新視野】中國電氣裝備集團12.84億元上海靜安拿地 將建總部大樓
- []當(dāng)前報道:德國股市收低;截至收盤DAX 30下跌0.57%
- []每日消息!保險公司的分類
- []養(yǎng)老保險能退嗎
- []天天熱點!公積金綁定哪個銀行卡 公積金綁定的是哪個銀行卡
- []央行營業(yè)管理部:加大對房地產(chǎn)企業(yè)和建筑企業(yè)的貸款投放力度
- []環(huán)球快消息!一筆關(guān)聯(lián)交易 建發(fā)國際“低價”購入上海閔行兩宗地
- []朗進科技:公司未參與沙特的“The Line”未來城市項目
- []簡訊:中梁控股1月至11月合約銷售額620億元 銷售面積594萬平
- []朗進科技:12月6日公司高管張進、張永利減持公司股份合計1.2萬股
- []環(huán)球新消息丨數(shù)碼視訊:12月6日公司高管鄭海濤減持公司股份合計8萬股
- []世界今日訊!科華數(shù)據(jù):12月6日公司高管林清民增持公司股份合計7300股
- []當(dāng)前焦點!美瑞新材:12月6日公司高管任光雷減持公司股份合計10萬股
- []每日看點!容知日新5名股東合計減持201.64萬股 套現(xiàn)2.23億 2022年前三季度公司凈利4470.9萬
- []每日熱文:德信中國1-11月合約銷售金額約336億元
- []信息:海航投資將延期至12月21日前回復(fù)深交所半年報問詢函
- []【世界新視野】福州1-9月累計住房公積金提取72億 為23風(fēng)險樓盤放款4.23億
- []【環(huán)球時快訊】光大地產(chǎn)至11月底接近4000套房屋全部提前交付
- []宣泰醫(yī)藥提示風(fēng)險 熊去氧膽酸膠囊產(chǎn)品不涉及新冠病毒防治
- []世界短訊!道通科技:12月2日詹金勇減持公司股份合計8750股
- []今日聚焦!珀萊雅:12月6日公司高管方玉友減持公司股份合計24萬股
- []今日報丨ST宏達實控人被證監(jiān)會擬罰1000萬元 律師明確可索賠區(qū)間
- []遠洋集團11月協(xié)議銷售額108.6億 前11月累計銷售895億元
- []財面兒|金地商置與金地集團續(xù)訂兩個服務(wù)協(xié)議 自明年1月1日起生效
- []快看點丨財面兒丨中國金茂1-11月累計取得簽約銷售金額共1374.8億元
- []每日頭條!粵水電:公司本次重組已取得中國證監(jiān)會的核準(zhǔn)批復(fù),相關(guān)工作正在進行當(dāng)中
- []每日動態(tài)!上坤地產(chǎn):2022年前11個月合約銷售額約79.2億元
- []全球熱訊:財面兒|金地“21金地MTN007”將于12月15日償付利息6060萬元
- []旭輝控股集團前11月合同銷售1175.9億元
- []天天消息!二手房周報 | 15城成交再降8%,京蓉等皆不及年內(nèi)周均(11.28-12.4)
- []韋爾股份:公司會一如既往的努力加強經(jīng)營管理,努力做好經(jīng)營,提升公司競爭力,實現(xiàn)穩(wěn)定的業(yè)績增長回饋股東
- []今日播報!宜昌城發(fā)地產(chǎn)底價29.6億競得宜昌市伍家崗4宗地塊
- []香港11月底官方外匯儲備資產(chǎn)增加60億美元
- []全球微資訊!中天金融:公司逾期債務(wù)對應(yīng)的擔(dān)保余額15.1億元
- []新華都:北京重力久致科技有限公司將在經(jīng)營范圍內(nèi)開展工作
- []武商集團:公司目前僅在南昌有酒店項目
- []天天熱消息:江蘇無錫支持“外擺位” 打造“夜市經(jīng)濟”
- []快看:印度股市年均回報率接近20%,IT、材料、工業(yè)等行業(yè)回報率高
- []國際航協(xié):全球航空業(yè)今年虧損收窄,明年將回歸盈利
- []頭條:龍光集團境內(nèi)債整體展期獲得通過 累計展期規(guī)模超223億元
- []環(huán)球今頭條!上海中海物業(yè)因未履行二次供水水質(zhì)檢測等被處罰6000元
- []環(huán)球焦點!沃森生物:公司在研新冠疫苗項目均在努力推進上市進程,公司將根據(jù)臨床進度和數(shù)據(jù)情況開展上市申報
- []全球快訊:英飛拓:公司暫未開展與卡塔爾世界杯足球賽相關(guān)業(yè)務(wù)
- []天天快資訊丨上坤地產(chǎn):前11月合約銷售金額約為79.2億元
- []訊息:世茂股份:1-11月銷售簽約金額約86億,銷售簽約面積約66萬平方米
- []環(huán)球速看:2023年樓市怎么走,房價漲不漲?最早一份機構(gòu)預(yù)測出爐
- []環(huán)球觀速訊丨九豐能源:目前,公司境外主要貨源地在馬來西亞、印度尼西亞、澳大利亞、卡塔爾等地,氣源供應(yīng)優(yōu)質(zhì)、穩(wěn)定
- []天天訊息:天虹股份:可以通過天虹APP及天虹小程序購買天優(yōu)醬酒
- []環(huán)球微頭條丨風(fēng)能相關(guān)上市公司有哪些?風(fēng)能上市公司龍頭有哪些?
- []鹽上市公司有哪些?相關(guān)上市公司龍頭一覽?
- []全球熱門:安防概念股票有哪些?安防概念股龍頭有哪些?
- []【環(huán)球新要聞】2021年地?zé)岣拍罟捎心男肯嚓P(guān)地?zé)岣拍罟梢挥[?
- []騰訊上市公司股票有哪些?相關(guān)騰訊上市公司有哪些?
- []龍光成第二家境內(nèi)債整體展期房企 展期規(guī)模約220億元
- []2021年超導(dǎo)概念股有哪些?超導(dǎo)概念龍頭股一覽?
- []全球視訊!安科生物股票今天多少錢一股?安科生物股票代碼是多少?
- []訊息:2021年銅龍頭概念股有哪些?銅概念股一覽?
- []化纖行業(yè)板塊上市公司有哪些?2021年化纖行業(yè)板塊股票一覽?
- []環(huán)球播報:雄安股票有哪些?相關(guān)雄安概念股票有哪些?
- []2021年新冠核酸上市公司龍頭股票有哪些?2021年新冠核酸概念股有哪些?
- []2021年農(nóng)林牧漁板塊龍頭股有哪些?股票代碼是多少?
- []環(huán)球關(guān)注:萬里揚: 公司在浙江省的獨立儲能電站項目都在正常推進中
- []人民幣貶值受益股有哪些?人民幣貶值板塊股票2020一覽?
- []【全球新要聞】煤炭股票有哪些?煤炭概念股一覽?
- []哪些是智能手表概念股?智能手表概念股名單一覽?
- []高新興股票價格是多少?高新興公司經(jīng)營范圍有哪些?
- []焦點熱訊:橡膠V帶概念股票有哪些?橡膠V帶概念股一覽?
- []微動態(tài)丨石墨烯上市公司股票有哪些?石墨烯上市公司龍頭一覽?
- []【天天報資訊】OLED概念股有哪些?相關(guān)OLED概念股一覽?
- []【熱聞】永太科技:公司以含氟技術(shù)為核心,在氟苯精細(xì)化學(xué)品領(lǐng)域發(fā)展多年,產(chǎn)品種類繁多
- []水泥概念龍頭股有哪些?水泥概念股有哪些?
- []環(huán)球熱消息:中國鐵建擬發(fā)行22億元中期票據(jù)用于償還到期債務(wù)
- []世界聚焦:ST宏達:公司目前尚未達到撤銷其他風(fēng)險警示的條件,相關(guān)事項請關(guān)注公司后續(xù)披露
- 世界信息:圖片或手寫簽名轉(zhuǎn)電子簽名怎么轉(zhuǎn)?手寫簽名轉(zhuǎn)電子簽名教程
- 基礎(chǔ)版本的基礎(chǔ)版本 直方圖均衡化系列
- 怎么設(shè)置交換機?計算機交換機連接設(shè)置方法
- 招行信用卡榮獲“2022年度金質(zhì)信用卡天璣獎”
- “快閃”成都,五糧濃香兔年生肖酒打響旺季攻勢、搶跑“春節(jié)檔”!
- 挑選運動耳機不踩雷!一篇文章告訴你想知道的所有
- 全球觀點:【東海期貨12月8日宏觀金融日報】:國內(nèi)疫情防控措施進一步優(yōu)化
- 中信建投期貨12月8日早間交易策略
- 視訊!蘇州高新發(fā)行3億元超短期融資券 利率2.48%
- 焦點信息:央行:支持房地產(chǎn)市場平穩(wěn)健康發(fā)展 用好“保交樓”專項借款加大對房企貸款投放力度
- B站注冊資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨家財務(wù)顧問 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年營收11.24億元 期內(nèi)研發(fā)費用投入增長19.05%
- 紅棗期貨尾盤拉升大漲近6% 目前紅棗市場總庫存約30萬噸
- 嘉銀金科發(fā)布2021年Q2財報 期內(nèi)凈利潤達1.27億元同比增長208%
- 成都銀行2021上半年凈利33.89億元 期內(nèi)實現(xiàn)營收同比增長17.27億元
- 汽車之家發(fā)布2021年第二季度業(yè)績 期內(nèi)新能源汽車品牌收入增長238%
- 中信銀行上半年實現(xiàn)凈利潤290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價格創(chuàng)新高 全天成交額達1.29億元
- 上半年生物藥大增45% 關(guān)鍵財務(wù)指標(biāo)好轉(zhuǎn)營收賬款持續(xù)下降
- 國際金價下方支撐仍看向1758美元
- 天天看熱訊:美原油交易策略:供給過剩擔(dān)憂升溫,油價或劍指70關(guān)口
- 天天資訊:數(shù)據(jù) | 我國國際航線旅客量創(chuàng)疫情3年新高,但航班量相比全球仍處較低水平
- 世界快資訊:現(xiàn)貨黃金交易策略:逢低買盤支撐金價,但下行壓力依然較大
- 天天觀點:內(nèi)部收益率54.56% 聯(lián)泓新科碳酸酯鋰電材料項目將于月底前中交
- 全球通訊!華富儲能股東江蘇華富股份被司法凍結(jié) 占公司總股本11.96%
- 今日訊!一張圖:交易品種樞紐點+多空占比一覽(2022/12/07周三)
- 今日精選:里程碑丨熱烈慶祝阿詩特能源第十萬臺戶用儲能電池模組下線!
- 【世界快播報】南瑞繼保助力國家電投西藏5站光伏增配儲能保供任務(wù)
- 當(dāng)前觀察:元旦假期公布,旅游平臺機票、酒店搜索應(yīng)聲上漲超6倍
- 世界觀速訊丨中國機場數(shù)字化轉(zhuǎn)型的現(xiàn)實難題
- 天天快報!貴州山東杭州等地取消落地檢,熱門景區(qū)酒店還查核酸嗎?
- 德銀稱近期金價可能測試1750美元支撐,2023年料相對穩(wěn)定!
- 每日熱文:各地優(yōu)化疫情防控措施帶動出游熱,旅游產(chǎn)業(yè)鏈全面恢復(fù)尚需時間
- 豐原藥業(yè):注射用尿促性素屬于促性腺激素藥物
- 環(huán)球快資訊:12月7日如意集團漲停分析:抗菌面料,紡織服裝,防護服概念熱股
- 世界熱訊:12月7日民和股份漲停分析:養(yǎng)雞,大農(nóng)業(yè)概念熱股
- 4700米!融和元儲助力世界海拔最高的儲能電站并網(wǎng)投運
- 每日速讀!境內(nèi)債整體展期獲得通過,龍光將回歸良性健康發(fā)展軌道
- 【當(dāng)前熱聞】12月7日力合科創(chuàng)漲停分析:新冠病毒防治,醫(yī)療器械,碳基材料概念熱股
- 江山經(jīng)開區(qū)發(fā)展1.13億元競得衢州江山1宗商住用地
- 實時焦點:安瀾城建3.68億元競得舟山岱山縣1宗商住用地
- 方遠房地產(chǎn)7.62億元競得臺州三門縣1宗商住用地 溢價率12.06%
- 環(huán)球關(guān)注:首開股份50億元公司債券已獲上交所受理
- 郭廣科院長醫(yī)美科普為什么有些隆胸術(shù)后會很假?
- 環(huán)球精選!12月7日漢王科技漲停分析:基因測序,流感/口罩,醫(yī)療信息化概念熱股
- 55%看好杭州樓市!貝殼研究院發(fā)布購房者置業(yè)信心報告
- 北京煤醫(yī)田秋梅:想咨詢“花蕊私密整形”又羞于啟齒?
- 北京嘉佩樂醫(yī)院靠譜嗎 正規(guī)可靠、保護患者就醫(yī)權(quán)益
- 三維天地助力動物疫控預(yù)警預(yù)報系統(tǒng)升級改造
- vollgas花式助力葡萄牙,陪你世界杯熬夜看球
- 摩洛哥首度晉級八強,海信電視見證世界杯黑馬誕生
- ? 1場進3球! 海信電視見證21歲葡萄牙小將一戰(zhàn)成名
- 即時焦點:淺議當(dāng)下奢華酒店產(chǎn)品和服務(wù)
- 全球快資訊丨中信建投期貨12月7日早間交易策略
- 天天熱消息:碧桂園擬配售17.8億股 總籌48.06億港元
- 立方數(shù)科:有關(guān)股東人數(shù)請您屆時參看定期報告有關(guān)內(nèi)容
- 學(xué)單詞怕忘記——背詞神器小z口袋單詞卡幫你鞏固記憶
- 北京發(fā)布“助企紓困12條”支持開發(fā)貸款等存量融資合理展期
- 天天即時看!悅心健康:截止11月30日,公司股東總戶數(shù)82,729戶,機構(gòu)股東609戶
- 環(huán)球即時:融創(chuàng)發(fā)布最新境內(nèi)債重組方案 未到期債務(wù)展期4年
- 環(huán)球新消息丨化妝品板塊反彈!產(chǎn)業(yè)鏈有望復(fù)蘇,機構(gòu)預(yù)計這些個股明年凈利大增
- 每日看點!綠地控股:擬向不超過35名特定投資者非公開發(fā)行股票 募資用于保交樓相關(guān)項目
- 今亮點!龍湖發(fā)布中期股息以股代息計劃 涉及23億美元債券
- 天天熱資訊!千味央廚:有關(guān)公司的戰(zhàn)略規(guī)劃,請查閱公司披露的定期報告
- 當(dāng)前速讀:雪榕生物:《OEM交易基礎(chǔ)合同》為框架性協(xié)議,該合同的簽訂不會對公司本年度業(yè)績造成重大影響
- 每日簡訊:外匯交易提醒:美元逼近200日均線,看漲信號增加,關(guān)注加拿大央行決議
- 全球訊息:融資端困難解決之后 房地產(chǎn)下一個問題應(yīng)如何化解?
- 今日精選:淄博房屋建設(shè)開發(fā)擬轉(zhuǎn)讓淄博齊軒地產(chǎn)100%股權(quán) 掛牌價2210萬元
- 每日熱聞!江西贛東路橋建設(shè)掛牌轉(zhuǎn)讓華辰置業(yè)30%股權(quán) 底價為875萬元
- 漢馬科技:公司指定信息披露媒體為《中國證券報》《上海證券報》及上海證券交易所網(wǎng)站
- 每日頭條!270億龍頭出手 風(fēng)口賽道現(xiàn)30億并購案
- 焦點!中糧糖業(yè):公司今年甜菜采收狀況穩(wěn)定
- 上海東浩蘭生國貿(mào)集團擬2.17億元轉(zhuǎn)讓灝震國際物流100%股權(quán)
- 全球短訊!皖新文化產(chǎn)業(yè)投資掛牌重慶皖新文投置業(yè)100%股權(quán) 底價僅1元
- 【世界新要聞】航企收錢的門道:創(chuàng)新支付方式
- 12月7日重點數(shù)據(jù)和大事件前瞻
- 【全球快播報】TD早報 | 海南多地調(diào)整跨省政策,三亞機票酒店預(yù)訂量激增3倍
- 全球聚焦:怎么可以全部提取公積金,有以下四步
- 養(yǎng)老保險余額在哪里查詢 如何查詢養(yǎng)老保險余額
- 全球滾動:業(yè)績快報 | 中海前11月合約物業(yè)銷售2567億 綠城合約銷售2630億
- 天天滾動:中裝建設(shè):中國郵政儲蓄銀行深圳分行與公司聯(lián)合推進的數(shù)字人民幣勞務(wù)薪資發(fā)放系統(tǒng)上線了公司智鏈平臺
- 【全球新視野】公積金能補繳嗎 可以補交公積金嗎
- 聚焦:怎么查孩子交沒交學(xué)平險 如何查詢學(xué)平險有沒有買
- 全球看點:辭職了公積金怎么取,去公積金中心提取
- 利空加元!加銀本周將進一步激進加息?專家稱市場對此缺乏信心
- 焦點!【實探】北京有序恢復(fù)堂食,火鍋店接到20余桌預(yù)訂!理發(fā)店也要排長隊……
- 華仁藥業(yè):公司管理團隊的簡歷情況請查閱公司在巨潮資訊網(wǎng)披露的《2021年年度報告》
- 京基智農(nóng)擬為3家子公司提供合計不超過6.16億元擔(dān)保
- 建發(fā)國際完成配股 獲得8億港元現(xiàn)金
- 【環(huán)球快播報】財面兒丨綠地控股:擬向不超過35名特定投資者非公開發(fā)行股票
- 世界微資訊!物業(yè)丨新大正:1.28億股限售股將于12月12日解禁上市
- 山東章鼓:12月5日公司高管許春東、王崇璞減持公司股份合計18.38萬股
- 鼎龍股份:12月5日公司高管蘇敏光減持公司股份合計1000股
- 今熱點:財面兒|融信中國前11月合約銷售額567.97億元
- 祥生控股前11月合約銷售額228.75億元
- 熱議:中科信息:12月5日公司高管王曉宇減持公司股份合計16.5萬股
- 財面兒丨保利置業(yè)前11月合同銷售額450億元
- 環(huán)球簡訊:泰福泵業(yè):12月5日公司高管毛世良減持公司股份合計2.23萬股
- 保隆科技:12月5日公司高管尹術(shù)飛減持公司股份合計6000股
- 艾迪精密:12月5日公司高管宋飛增持公司股份合計8.14萬股
- 當(dāng)前通訊!“第三支箭”發(fā)力,房企洗牌加速,中小市值國央企存中期成長機會
- 【環(huán)球新要聞】沃森生物:疫苗行業(yè)具有高投入、高壁壘、高回報、長周期的特點
- 環(huán)球熱門:資本月報 | 房企融資利好政策頻出,近期將迎來一波配股潮(2022年11月)
- 簡訊:奧園集團公開招標(biāo):出讓奧園健康29.9%股權(quán)
- 政策支持房地產(chǎn)平穩(wěn)健康發(fā)展,金科近期利好頻傳
- 全球觀天下!道通科技3名股東合計減持865.76萬股 套現(xiàn)合計2.96億 2022年前三季度公司凈利1.02億
- 金科股份與中國光大銀行重慶分行簽訂戰(zhàn)略合作協(xié)議
- 天天觀察:海南多地調(diào)整省外來(返)人員政策,三亞“小院兒”民宿預(yù)訂量環(huán)比增六成
- 當(dāng)前信息:貝殼靜默期后回購重啟,12月5日耗資200萬美元
- 頭條焦點:綠地控股:擬向不超過35名特定投資者非公開發(fā)行股票
- 廈門市調(diào)整島外限購政策
- 環(huán)球快消息!大宗商品新一輪“超級周期”引擎大概率來自印度,觸發(fā)時點尚難預(yù)判
- 天天信息:銳科激光:尊的公司暫不涉及相關(guān)事項
- 【全球播資訊】合景泰富11月銷售公告出爐 華南高端市場成長空間足
- 融信中國:今年前11個月總銷售額約為567.97億元
- 世界速看:深康佳A:謝謝你的合作。本公司與晟高能源科技在光伏領(lǐng)域的合作正在推進中
- 天天精選!深城交:如有高管發(fā)生變化,公司會依規(guī)進行披露
- 世界觀焦點:投行預(yù)測歐銀加息幅度大于預(yù)期,并上調(diào)歐元兌美元預(yù)測!
- 看點:“19婁底城投PPN002”召開債券持有人會議 擬變更募集資金用途等