edit control显示数值

void CMFC_HoughDlg::OnBnClickedHoughline()
{
	// TODO: 在此添加控件通知处理程序代码

	static int countnum=0;
	char filename[200]; 

	CString Text_dp,Text_minDist,Text_param1,Text_param2,Text_minRadius,Text_maxRadius,Text_downGrayValue,Text_upGrayValue;
	GetDlgItemText(IDC_EDIT_dp, Text_dp); 
	GetDlgItemText(IDC_EDIT_minDist, Text_minDist); 
	GetDlgItemText(IDC_EDIT_param1, Text_param1); 
	GetDlgItemText(IDC_EDIT_param2, Text_param2); 
	GetDlgItemText(IDC_EDIT_minRadius, Text_minRadius); 
	GetDlgItemText(IDC_EDIT_maxRadius, Text_maxRadius); 
	GetDlgItemText(IDC_EDIT_downGrayValue, Text_downGrayValue); 
	GetDlgItemText(IDC_EDIT_upGrayValue, Text_upGrayValue); 

	cameras.dp=_ttol(Text_dp);
	cameras.minDist=_ttol(Text_minDist);
	cameras.param1=_ttol(Text_param1);
	cameras.param2=_ttol(Text_param2);
	cameras.minRadius=_ttoi(Text_minRadius);
	cameras.maxRadius=_ttoi(Text_maxRadius);
	cameras.downGrayValue=_ttoi(Text_downGrayValue);
	cameras.upGrayValue=_ttoi(Text_upGrayValue);

	 if(HoughFlag==0)		//0值时,检测圆
    {
		 KillTimer(1);  //关闭定时器,显示检测直线的图像

		//edit control显示数值
		CEdit* pstrX,* pstrY,* pstrRadius;
		pstrX = (CEdit*) GetDlgItem(IDC_WIDTH);
		pstrY = (CEdit*) GetDlgItem(IDC_HEIGHT);
		pstrRadius = (CEdit*) GetDlgItem(IDC_RADIUS);
		CString strX,strY,strRadius;

		GetDlgItem(ID_HoughLine)->SetWindowText("停止检测");
		
		if (capture.isOpened())
		{
			capture>>img; //显示检测图像
			//判断是否输入参数
			if(cameras.dp*cameras.minDist*cameras.param1*cameras.param2*cameras.minRadius*cameras.maxRadius*cameras.downGrayValue*cameras.upGrayValue-0<1e-6)
				AfxMessageBox(_T("请输入参数"));
		//sprintf_s(filename,"Picture %d.jpg",countSnap);  
		//imwrite(filename,picture);			//图片保存到本工程目录中 
			else
			{
				if(!cameras.HoughCircle(img,dstImg,CenterX,CenterY,Radius))            //hough圆检测
				{
					AfxMessageBox(_T("未检测到螺孔,请调整背板或参数"));
					GetDlgItem(ID_HoughLine)->SetWindowText("检测圆  ");
					SetTimer(1,100,NULL); //定时器,定时时间和帧率一致*/ 比赛
					HoughFlag++;
				}

				//显示到对话框
				strX.Format("%.2f",CenterX);
				strY.Format("%.2f",CenterY);
				strRadius.Format("%.3f",Radius);

				//赋值

				pstrX-> SetWindowText(strX);
				pstrY-> SetWindowText(strY);
				pstrRadius-> SetWindowText(strRadius);

	
				//以下操作获取图形控件尺寸并以此改变图片尺寸
				CRect rect;
				GetDlgItem(IDC_Picture)->GetClientRect(&rect);//获取Picture Control控件的大小  
				Rect dst(rect.left,rect.top,rect.right,rect.bottom);
				resize(dstImg,midImage,cv::Size(rect.Width(),rect.Height())); 

				imshow(windows_name,midImage);
				sprintf_s(filename,"Picture %d.jpg",countnum++);  
				imwrite(filename,dstImg);			//图片保存到本工程目录中 
			}
		}
		else
		{
			AfxMessageBox("请打开相机");
			GetDlgItem(ID_HoughLine)->SetWindowText("检测圆  ");
			 HoughFlag++;
		}

    }
    else           //关闭摄像头
    {
        GetDlgItem(ID_HoughLine)->SetWindowText("检测圆  ");
	    SetTimer(1,100,NULL); //定时器,定时时间和帧率一致
		 	
	 }
    HoughFlag++;
    HoughFlag %=2;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值