📄 createhistogram.txt
字号:
void CDipView::OnViewHist()
{
CDipDoc *pDoc=GetDocument();
ASSERT_VALID(pDoc);
//判断当前是否有图像对象
if(pDoc->m_pDibObject==NULL)
return;
//在点处理CPointPro类中创建用来绘制直方图的数据
CPointPro PointOperation(pDoc->m_pDibObject);
int *pHistogram=PointOperation.GetHistogram();
//生成一个对话框CHistDlg类的实例
CDlgIntensity HistDlg;
//将绘制直方图的数据传递给CHistDlg对话框的公有成员变量m_pnHistogram
if(pHistogram!=NULL)
{
//设置直方图数据指针
HistDlg.m_pnHistogram=pHistogram;
//设置当前像素为0的像素数
HistDlg.m_nCurrentPiexsNum=pHistogram[0];
//设置是否为256级灰度图像
HistDlg.m_bIsGray256=PointOperation.IsGray256();
}
//显示对话框
if(HistDlg.DoModal()!=IDOK)
return;
delete[]pHistogram;
}
void CDipDoc::OnViewHistmatlab()
{
Engine *ep; //定义MATLAB引擎变量
CString command;
if(!(ep=engOpen("\0"))) //打开MATLAB引擎
{
fprintf(stderr,"\n MATLAB引擎启动失败!\n");
MessageBox(NULL,"MATLAB引擎启动失败!","MATLAB",MB_OK| MB_
ICO NERROR);
exit(-1);
}
CString strPathName=GetPathName();
//实现MATLAB命令
command="data=imread("'+strPathName+'")";
//通过MATLAB引擎执行MATLAB命令
engEvalString(ep,command);
engEvalString(ep,"figure,imshow(data)");
engEvalString(ep,"figure('visible','off','NumberTitle','off','Name','图像的直方
图统计','MenuBar','none'),imhist(data)");
MessageBox(NULL,"关闭MATLAB引擎,系统将退出MATLAB应用程序!", "MATLAB","MB_OK | MB_ICONINFORMATION");
engClose(ep);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -