(学习笔记6)BMP位图照片的灰度变换之直方图

接着(学习笔记5)来写,注意注意是在(学习笔记5)上去写直方图的。每个学习笔记都是在前一个基础上去写的。
好的废话完了,直接写直方图。

step1.修改菜单栏中灰度变换下直方图的ID,如下图所示:
这里写图片描述

step2.直方图的显示,我们需要设计一个对话框来在Picture Control控件中显示,所以第二步,我们来设计对话框。
步骤如下截屏所示:
设计的最终界面如下:
这里写图片描述

接下来一步步去阐述步骤和过程。
修改对话框的ID,和对话框的Caption以及从工具箱中拉入Group Box和Picture Control控件就不用说了,请注意:Group Box中拉进去了两个Picture Control控件。
这里写图片描述

这里写图片描述

第一Picture Control的ID修改
这里写图片描述

第二个Picture Control的ID修改,以及Type,Image修改。
左上角的照片如下:添加资源命名为IDB_BITMAP1
这里写图片描述

这里写图片描述

修改“均值”下边的Edit Control的ID
这里写图片描述

修改“方差”下边的Edit Control的ID
这里写图片描述

Picture Control还有一个属性需要修改。如下截图:
这里写图片描述

step3. 响应函数。
这里写图片描述

afx_msg void OnHistogramDraw();

这里写图片描述

void Cdemo1View::OnHistogramDraw() 
{
    // TODO: Add your command handler code here
    //获取文档类中m_dib的指针,访问当前DIB数据
    Cdemo1Doc *pDoc=GetDocument();
    ImageDib *pDib=pDoc->m_dib;

    //异常判断
    if(pDib->m_nBitCount!=8&&pDib->m_nBitCount!=24){
        ::MessageBox(0,L"只处理灰度和彩色图像",MB_OK,0);
        return ;
    }

    //直方图绘制对话框
    HistogramDrawDlg dlgHist;
    dlgHist.m_himageDib.ReplaceDib(pDib->GetDimensions(),pDib->m_nBitCount,
        pDib->m_lpColorTable, pDib->m_pImgData);

    //显示直方图
   dlgHist.DoModal();
}

这里写图片描述

#if !defined(AFX_HISTOGRAMDRAWDLG_H__2CABD0F5_E9B6_4128_9979_64C4DAE89356__INCLUDED_)
#define AFX_HISTOGRAMDRAWDLG_H__2CABD0F5_E9B6_4128_9979_64C4DAE89356__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ImageDib.h"
// HistogramDrawDlg.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// HistogramDrawDlg dialog

class HistogramDrawDlg : public CDialog
{
// Construction
public:
    //构造函数
    HistogramDrawDlg(CWnd* pParent = NULL);   // standard constructor
    //ImgDib类的对象m_himageDib
    ImageDib m_himageDib;

public:
    //直方图数组
    int m_histArray[256];

    //直
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值