OpenCv求直方图及直方图均衡化
来源:互联网 发布:gre考试内容 知乎 编辑:程序博客网 时间:2024/04/29 00:47
procedure TFrmMain.BtnHistogramClick(Sender: TObject);
var
pHist: PCvHistogram;
sFileName: string;
pImg, pHistImg: PIplImage;
nHistogramBins: Integer;
HistogramRange1: array[0..1] of Single;
pHistogramRange: PFloat;
i: Integer;
hist_size: array[0..1] of Integer;
dMaxHist: Float;
begin
if OpenDialog1.Execute then
sFileName := OpenDialog1.FileName
else
Exit;
HistogramRange1[0] := 0;
HistogramRange1[1] := 255;
pHistogramRange := @HistogramRange1[0];
hist_size[0] := 256;
hist_size[1] := 300;
nHistogramBins := 256;
pHist := cvCreateHist(1, @hist_size[0], CV_HIST_ARRAY, @pHistogramRange);
pImg := cvLoadImage(PChar(sFileName), CV_LOAD_IMAGE_GRAYSCALE);
cvCalcHist(@pImg, pHist);
cvGetMinMaxHistValue(pHist, nil, @dMaxHist, nil, nil);
pHistImg := cvCreateImage(cvSize_(256, 300), IPL_DEPTH_8U, 3);
cvZero(pHistImg);
for i := 0 to nHistogramBins - 1 do
begin
OutputDebugString(PChar(Format('>>>>:%f', [cvQueryHistValue_1D(pHist, i)])));
cvLine(pHistImg,
cvPoint_(i, 300 - Trunc(cvQueryHistValue_1D(pHist, i) / dMaxHist * 300)),
cvPoint_(i, 300),
CV_RGB(127, 127, 127));
end;
cvNamedWindow('Histogram', 1);
cvNamedWindow('Riverbank', 1);
cvShowImage('Riverbank', pImg);
cvShowImage('Histogram', pHistImg);
cvWaitKey(0);
end;
直方图均匀化处理,消除局部过度曝光.
var
pImg, pImg2: PIplImage;
sFileName: string;
begin
if OpenDialog1.Execute then
sFileName := OpenDialog1.FileName
else
Exit;
pImg := cvLoadImage(PChar(sFileName), CV_LOAD_IMAGE_GRAYSCALE);
pImg2 := cvCreateImage(cvSize_(pimg.Width, pimg.Height), IPL_DEPTH_8U, 1);
cvZero(pImg2);
cvEqualizeHist(pImg, pImg2);
cvNamedWindow('p1', 0);
cvNamedWindow('p2', 0);
cvShowImage('p1', pImg);
cvShowImage('p2', pImg2);
cvSaveImage(CTMPSAVEIMAGEPATH, pImg2);
cvWaitKey(0);
cvReleaseImage(pImg);
cvReleaseImage(pImg2);
cvDestroyWindow('p1');
cvDestroyWindow('p2');
end;
均衡化前后直方图对比:
均匀化后的图像:
上面绘制的直方图没有计算最大直方图值,因此绘制超出了上边界,算法已改正。
- OpenCv求直方图及直方图均衡化
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- 【OpenCV】直方图应用:直方图均衡化,直方图匹配,对比直方图
- opencv直方图均衡化
- OPenCV直方图均衡化
- opencv-直方图均衡化
- opencv 直方图均衡化
- java 变量级别及action向jsp传值[整理]
- oralce之递归算法
- linux驱动基本结构分析
- Android:在争议中逃离Linux内核的GPL约束
- Delphi 函数使用技巧
- OpenCv求直方图及直方图均衡化
- 设置SurfaceView 背景为透明
- 脚本示例 (Reporting Services)Microsoft Visual Basic .NET
- Windows下的gotoxy 函数
- viewDidUnload 和 dealloc 的区别
- Android中AsyncTask的简单用法
- Objective-C项目中解析XML的几种库之间的比较
- JSP读写文件
- 完全卸载VS2005/VS2008的步骤