午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

直方圖

 mscdj 2014-07-25

class Histogram1D

{

public:

Histogram1D()

{

histSize[0]=256;

hranges[0]=0.0;

hranges[1]=255.0;

ranges[0]=hranges;

channels[0]=0;

}

MatND getHistogram(const Mat &image)

{

MatND hist;

calcHist(&image,1,channels,Mat(),hist,1,histSize,ranges);

return hist;

}

protected:

private:

int histSize[1];

float hranges[2];

const float* ranges[1];

int channels[1];

};



Mat drawhist(MatND hist)

{

double maxvalue=0;

double minvalue=0;

minMaxLoc(hist,&minvalue,&maxvalue,0,0);

Mat histimg(256,256,CV_8U,Scalar(255));

int hpt=static_cast<int>(0.9*256);

for (int h=0;h<256;h++)

{

float binval=hist.at<float>(h);

int intensity=static_cast<int>(binval*hpt/maxvalue);

line(histimg,Point(h,256),Point(h,256-intensity),Scalar(0));

}

return histimg;

}


int _tmain(int argc, _TCHAR* argv[])

{

Mat src=imread("D:\\image\\img2\\lena.jpg",0);

if (!src.data)

{

cout<<"can not find picture"<<endl;

}

//int thresh=otsu(src);

Mat img;

//threshold(src,img,thresh,255,CV_THRESH_BINARY);

//calchist(src);

Histogram1D h;

MatND hist=h.getHistogram(src);

Mat histimg=drawhist(hist);

//for (int i=0;i<256;i++)

//{

// cout<<"value"<<i<<"="<<hist.at<float>(i)<<endl;

//}

namedWindow("win1");

imshow("win1",histimg);

waitKey(0);

return 0;

}

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多