当前位置: 首页 > news >正文

上海专业微信网站开发公司公司网站用个人备案 2018

上海专业微信网站开发公司,公司网站用个人备案 2018,建设手机网站的方案,青岛网站制作seo文章目录 工程效果重要代码完整代码参考 工程效果 载入图片#xff0c;并在左侧显示原始图片、二值化图片和灰度图片。 双击左侧的图片控件#xff0c;可以在右侧的大控件中#xff0c;显示双击的图片。 初始画面#xff1a; 载入图片#xff1a; 双击左侧的第二个控件… 文章目录 工程效果重要代码完整代码参考 工程效果 载入图片并在左侧显示原始图片、二值化图片和灰度图片。 双击左侧的图片控件可以在右侧的大控件中显示双击的图片。 初始画面 载入图片 双击左侧的第二个控件显示图片 //对图片显示在控件中的位置没有进行优化。 重要代码 主要是用的MFC Image控件。 载入图片 void CGDITESTDlg::OnBnClickedBtnStart() {//获取图像文件CFileDialog filedlg(TRUE,_T(png),NULL,0,TEXT(image Files(*.bmp;*.jpg;*.png)|*.bmp;*.jpg;*.png|all files(*.*)|(*.*)||),this);filedlg.DoModal();m_cstr_filepath filedlg.GetPathName();m_cstr_filename filedlg.GetFileName();if (m_cstr_filepath.IsEmpty() || m_cstr_filename.IsEmpty()){AfxMessageBox(TEXT(打开文件失败));return ;} image_origin.Load(m_cstr_filepath);image_binarization.Load(m_cstr_filepath);image_grey.Load(m_cstr_filepath);//获取图像尺寸imgw image_origin.GetWidth();imgh image_origin.GetHeight();img_t imgw / imgh;//根据图像尺寸调整控件客户区尺寸比例CRect rect_ctl;m_ctl_pic_origin.GetClientRect(rect_ctl);float rectw rect_ctl.Width();float recth rect_ctl.Height();float rect_t rectw / recth;if(rect_t img_t){rect_ctl CRect(rect_ctl.TopLeft(), CSize(rect_ctl.Width(), rect_ctl.Width() / img_t ));}else{rect_ctl CRect(rect_ctl.TopLeft(), CSize(rect_ctl.Height() * img_t, rect_ctl.Height()));}//显示图像到控件客户区CDC* pdc m_ctl_pic_origin.GetDC();m_ctl_pic_origin.SetBitmap(NULL); image_origin.Draw(pdc-m_hDC, rect_ctl);//图像二值化处理ImageBinarizationProcess(image_binarization);//根据图像尺寸调整控件客户区尺寸比例CRect rect_ctl_binarization;m_ctl_pic_binarization.GetClientRect(rect_ctl_binarization);float rectw_ rect_ctl_binarization.Width();float recth_ rect_ctl_binarization.Height();float rect_t_ rectw / recth;if (rect_t_ img_t){rect_ctl_binarization CRect(rect_ctl_binarization.TopLeft(), CSize(rect_ctl_binarization.Width(), rect_ctl_binarization.Width() / img_t));}else{rect_ctl_binarization CRect(rect_ctl_binarization.TopLeft(), CSize(rect_ctl_binarization.Height() * img_t, rect_ctl_binarization.Height()));}//显示图像到控件客户区CDC* pdc_ m_ctl_pic_binarization.GetDC();m_ctl_pic_binarization.SetBitmap(NULL);image_binarization.Draw(pdc_-m_hDC, rect_ctl_binarization);//图像灰度处理ImageGreyProcess(image_grey);//根据图像尺寸调整控件客户区尺寸比例CRect rect_ctl_grey;m_ctl_pic_grey.GetClientRect(rect_ctl_grey);float rectw__ rect_ctl_grey.Width();float recth__ rect_ctl_grey.Height();float rect_t__ rectw / recth;if (rect_t__ img_t){rect_ctl_grey CRect(rect_ctl_grey.TopLeft(), CSize(rect_ctl_grey.Width(), rect_ctl_grey.Width() / img_t));}else{rect_ctl_grey CRect(rect_ctl_grey.TopLeft(), CSize(rect_ctl_grey.Height() * img_t, rect_ctl_grey.Height()));}//显示图像到控件客户区CDC* pdc__ m_ctl_pic_grey.GetDC();m_ctl_pic_grey.SetBitmap(NULL);image_grey.Draw(pdc__-m_hDC, rect_ctl_grey);isLoadedImage true;m_ctl_pic_origin.ReleaseDC(pdc);m_ctl_pic_binarization.ReleaseDC(pdc);m_ctl_pic_grey.ReleaseDC(pdc); }图像二值化处理 算法来源CMFC打开图片、彩图,以及对图像进行简单算法处理 void CGDITESTDlg::ImageBinarizationProcess(CImage image) {BYTE* pimagedata (BYTE*)image.GetBits(); //获取到图片内存点的位置int width image.GetWidth();int height image.GetHeight();int pit image.GetPitch();//图像每行字节数int bytes_per_pixel image.GetBPP() / 8; //获取每像素的位数除以8得到每个像素占的字节数std::vectorint gray(256); //初始化时自动存0用来存放256种颜色出现的次数for (int i 0; i height; i){for (int j 0; j width; j){gray.at((int)*(pimagedata pit * i bytes_per_pixel * j)) 1;}}int max 0;int sec 0;int localmax 0;int localsec 0;for (int i 0; i 256; i){if (gray[i] max){max gray[i];localmax i;}}for (int i 0; i 256; i){if (gray[i] sec abs(i - localmax) 10){sec gray[i];localsec i;}}int mid (localmax localsec) / 2;for (int i 0; i height; i){for (int j 0; j width; j){if ((int)(*(pimagedata pit * i j * bytes_per_pixel)) mid){*(pimagedata pit * i j * bytes_per_pixel) 0;*(pimagedata pit * i j * bytes_per_pixel 1) 0;*(pimagedata pit * i j * bytes_per_pixel 2) 0;}else{*(pimagedata pit * i j * bytes_per_pixel) 255;*(pimagedata pit * i j * bytes_per_pixel 1) 255;*(pimagedata pit * i j * bytes_per_pixel 2) 255;}}} }灰度处理 算法来源CMFC打开图片、彩图,以及对图像进行简单算法处理 void CGDITESTDlg::ImageGreyProcess(CImage image) {BYTE* pimagedata (BYTE*)image.GetBits(); //获取到图片内存点的位置int width image.GetWidth();int height image.GetHeight();int pit image.GetPitch();//图像每行字节数int bytes_per_pixel image.GetBPP() / 8; //获取每像素的位数除以8得到每个像素占的字节数for (int i 0; i height; i){for (int j 0; j width; j){*(pimagedata pit * i j * bytes_per_pixel) * 0.114;*(pimagedata pit * i j * bytes_per_pixel 1) * 0.587;*(pimagedata pit * i j * bytes_per_pixel 2) * 0.299;}}}双击左侧控件的响应 void CGDITESTDlg::OnLButtonDblClk(UINT nFlags, CPoint point) {if (!isLoadedImage) //如果没有加载图片则不会执行后续代码return;//未使用仅测试CPoint ptCursor;GetCursorPos(ptCursor);//获取执行此函数时的鼠标位置屏幕坐标ClientToScreen(point); //point是双击时的鼠标位置坐标系是窗口客户区所以要转换成屏幕坐标//未使用仅测试CPoint ptCursor1(GetCurrentMessage()-pt); //双击时的鼠标位置屏幕坐标GetDlgItem(IDC_PIC_ORIGIN)-GetWindowRect(rc_origin);//控件的rect屏幕坐标if (rc_origin.PtInRect(point))//如果右键在picture control区域抬起则放大显示灰度图片{CRect rect_ctl;m_ctl_pic_dsp.GetClientRect(rect_ctl);float rectw rect_ctl.Width();float recth rect_ctl.Height();float rect_t rectw / recth;if (rect_t img_t){rect_ctl CRect(rect_ctl.TopLeft(), CSize(rect_ctl.Width(), rect_ctl.Width() / img_t));}else{rect_ctl CRect(rect_ctl.TopLeft(), CSize(rect_ctl.Height() * img_t, rect_ctl.Height()));}CDC* pdc m_ctl_pic_dsp.GetDC();m_ctl_pic_dsp.SetBitmap(NULL);image_origin.Draw(pdc-m_hDC, rect_ctl);m_ctl_pic_dsp.ReleaseDC(pdc);return;}GetDlgItem(IDC_PIC_PROCESS)-GetWindowRect(rc_binarization);if (rc_binarization.PtInRect(point))//如果右键在picture control区域抬起则放大显示灰度图片{CRect rect_ctl;m_ctl_pic_dsp.GetClientRect(rect_ctl);float rectw rect_ctl.Width();float recth rect_ctl.Height();float rect_t rectw / recth;if (rect_t img_t){rect_ctl CRect(rect_ctl.TopLeft(), CSize(rect_ctl.Width(), rect_ctl.Width() / img_t));}else{rect_ctl CRect(rect_ctl.TopLeft(), CSize(rect_ctl.Height() * img_t, rect_ctl.Height()));}CDC* pdc m_ctl_pic_dsp.GetDC();m_ctl_pic_dsp.SetBitmap(NULL);image_binarization.Draw(pdc-m_hDC, rect_ctl);m_ctl_pic_dsp.ReleaseDC(pdc);return;}GetDlgItem(IDC_PIC_PROCESS2)-GetWindowRect(rc_grey);if (rc_grey.PtInRect(point))//如果右键在picture control区域抬起则放大显示灰度图片{CRect rect_ctl;m_ctl_pic_dsp.GetClientRect(rect_ctl);float rectw rect_ctl.Width();float recth rect_ctl.Height();float rect_t rectw / recth;if (rect_t img_t){rect_ctl CRect(rect_ctl.TopLeft(), CSize(rect_ctl.Width(), rect_ctl.Width() / img_t));}else{rect_ctl CRect(rect_ctl.TopLeft(), CSize(rect_ctl.Height() * img_t, rect_ctl.Height()));}CDC* pdc m_ctl_pic_dsp.GetDC();m_ctl_pic_dsp.SetBitmap(NULL);image_grey.Draw(pdc-m_hDC, rect_ctl);m_ctl_pic_dsp.ReleaseDC(pdc);return;}CDialogEx::OnLButtonDblClk(nFlags, point); } 以上是通过窗口的双击时间回调函数判断双击时鼠标的坐标是否在控件的坐标Rect中如果是则执行对应代码。 也可以把双击的空间的notify属性设置为true然后再时间中设置双击消息回调函数。 完整代码 MFC简单的图片处理工程-Gitee 参考 CMFC打开图片、彩图,以及对图像进行简单算法处理
http://www.yayakq.cn/news/2136/

相关文章:

  • 东昌府网站建设公司域名分类网站
  • 深圳公司社保网站如何利用seo赚钱
  • 成都网站建设987net手机网页制作作品
  • 深圳建设工程交易中心网站营销网站建设公司地址
  • 网站开发样例衡水注册公司流程和费用
  • 石家庄网站建设服务群晖wordpress外网
  • 给传销产品做网站物业网站模板下载
  • 贵港公司做网站怎么做网站模块
  • 厦门网站制作哪里好薇企业所得税规避50种
  • icp网站负责人做海报的素材那个网站比较好
  • 网络营销课程有哪些湖南专业seo公司
  • 建设网站定位分析机械制造设备类企业网站织梦模板
  • 如何建立免费的个人企业网站建筑网站大全免费
  • 襄阳营销型网站建设秦皇岛做网站的公司
  • 网站服务器和空间大小1688首页
  • 淘宝店铺网站建设郑州公共住宅建设投资有限公司网站
  • 网站备案对应的ip地址短视频运营岗位职责和任职要求
  • 折扣网站模板外贸 静态网站 怎么做
  • 政协网站 是政协信息化建设域名备案需要有网站吗
  • 辽宁市营商环境建设局网站用ai怎么做网站
  • wordpress搬家后台还是老网站网络科技扣钱是咋回事
  • 怎么做自己优惠券网站vue适合什么网站开发
  • 猎头可以做单的网站wordpress 获取微博
  • 记事本做网站代码电子商务网站建设与网页设计
  • 网站建设伍金手指下拉6上海本地企业
  • 东莞seo网站推广建设php开发一个企业网站价格
  • 自己做视频网站会不会追究版权营销推广工作内容
  • 企业网站能起到什么作用网站建设公司推荐 金石下拉
  • 网站宣传夸大处罚wordpress 关闭邮件
  • 用wordpress建站效果怎么样建设网站技术标准