opencv 그레이스케일 직사각형 그리기
#include <cv.h>
#include <highgui.h>
#pragma comment( lib, "cv.lib" )
#pragma comment( lib, "cxcore.lib" )
#pragma comment( lib, "highgui.lib" )
int main()
{
IplImage* src=cvLoadImage("lena.jpg",0);
int width=src->width;
int height=src->height;
int step=src->widthStep;
uchar* data=(uchar *)src->imageData;
int hist[256]={0};
for(int i=0;i<height;i++)
{
for(int j=0;j<width;j++)
{
hist[data[i*step+j]]++;
}
}
int max=0;
for(i=0;i<256;i++)
{
if(hist[i]>max)
{
max=hist[i];
}
}
IplImage* dst=cvCreateImage(cvSize(400,300),8,3);
cvSet(dst,cvScalarAll(255),0);
double bin_width=(double)dst->width/256;
double bin_unith=(double)dst->height/max;
for(i=0;i<256;i++)
{
CvPoint p0=cvPoint(i*bin_width,dst->height);
CvPoint p1=cvPoint((i+1)*bin_width,dst->height-hist[i]*bin_unith);
cvRectangle(dst,p0,p1,cvScalar(0,255),-1,8,0);
}
cvNamedWindow("src",1);
cvShowImage("src",src);
cvNamedWindow("dst",1);
cvShowImage("dst",dst);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&src);
cvReleaseImage(&dst);
return 0;
}
#include <cv.h>
#include <highgui.h>
#pragma comment( lib, "cv.lib" )
#pragma comment( lib, "cxcore.lib" )
#pragma comment( lib, "highgui.lib" )
int main()
{
IplImage* src=cvLoadImage("lena.jpg",0);
int size=256;
float range[]={0,255};
float* ranges[]={range};
CvHistogram* hist=cvCreateHist(1,&size,CV_HIST_ARRAY,ranges,1);
cvCalcHist(&src,hist,0,NULL);
float max=0;
cvGetMinMaxHistValue(hist,NULL,&max,NULL,NULL);
IplImage* dst=cvCreateImage(cvSize(400,300),8,3);
cvSet(dst,cvScalarAll(255),0);
double bin_width=(double)dst->width/size;
double bin_unith=(double)dst->height/max;
for(int i=0;i<size;i++)
{
CvPoint p0=cvPoint(i*bin_width,dst->height);
CvPoint p1=cvPoint((i+1)*bin_width,dst->height-cvGetReal1D(hist->bins,i)*bin_unith);
cvRectangle(dst,p0,p1,cvScalar(0,255),-1,8,0);
}
cvNamedWindow("src",1);
cvShowImage("src",src);
cvNamedWindow("dst",1);
cvShowImage("dst",dst);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&src);
cvReleaseImage(&dst);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
언제가 아닌가프로그래밍 언어에서 null 참조가 수십억 달러의 실수라는 말을 이미 들었을 것입니다. Java의 유명하고 두려운 NullPointerException은 여러분이 알고 있거나 C의 분할 오류일 수 있습니다. 모든 상...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.