功能:获取原图后,通过opencv相关函数对图像像素点进行对比度处理,然后在MFC的PictureControl中显示出来。

采用Opencv2.3.1,CvvImage类已经不在其中,需要额外增加,需要自行下载。

参数过多,更多实用算法可在此基础上开发。

头文件:

 CvvImage m_CvvImage; IplImage* m_Frame;int m_X1;int m_Y1;int m_X2;int m_Y2;

实现:

void XXX::OnBnClickedButtonSetContrast()
{UpdateData(TRUE);pDC=pStc->GetDC(); //得到Picture控件设备上下文  hDC=pDC->GetSafeHdc(); //得到控件设备上下文的句柄int nRows = srcImage.rows;  int nCols = srcImage.cols; Mat dstImage = srcImage.clone() ;//完全拷贝,把image中的所有信息拷贝到image1中//判断图像的连续性  if (dstImage.isContinuous())  {  nCols = nRows*nCols;  nRows = 1;  } uchar *pDataMat;  for( int j = 0; j < nRows; j++ ){pDataMat = dstImage.ptr<uchar>(j);//ptr<>()得到的是一行指针for( int i = 0; i < nCols; i++ ){if (pDataMat[i]<=m_X1) pDataMat[i] = m_Y1 * pDataMat[i] / m_X1;else if ( pDataMat[i]<=m_X2)  pDataMat[i] = (m_Y2-m_Y1)*( pDataMat[i]-m_X1)/(m_X2-m_X1) + m_Y1;else  pDataMat[i] = (255-m_Y2)*( pDataMat[i]-m_X2)/(255-m_X2) + m_Y2;if (pDataMat[i] < 0) pDataMat[i] = 0;if (pDataMat[i] > 255) pDataMat[i] = 255;}}imshow("原图", srcImage); //与效果图对比Mat iMat(dstImage.rows, dstImage.cols, CV_8UC1, pDataMat, dstImage.cols);m_Frame=&IplImage(iMat);m_CvvImage.CopyOf(m_Frame);      m_CvvImage.DrawToHDC(hDC, &rect); m_CvvImage.Destroy();ReleaseDC( pDC );UpdateData(FALSE);}

显示:MFC中采用分段线性对比度处理图像并且显示在控件中相关推荐

  1. WPF中如何将List<string>数据绑定到DataGrid控件中

    一,前端 <DataGrid x:Name="Onlinedatagrid" AutoGenerateColumns="True" HorizontalA ...

  2. C#+AE 调整TOCControl控件中图层的显示顺序

    基本思路如下:利用鼠标左键将需要调整顺序的图层移动至目标位置. ①需要涉及到TOCControl的OnMouseDown事件来获取要调整的图层, ②OnMouseUp事件获得目标图层和索引号, ③再利 ...

  3. [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField

    在ASP.NET 2.0中操作数据:在GridView控件中使用TemplateField 英文原版  |   本教程的代码(C#)   |   翻译目录   |   原文目录 导言 GridView ...

  4. android 的a标签,Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)...

    在5.2.1节和5.2.2节介绍了标签以及TextView自动识别的特殊文本(网址.电话号.Email等),这些都可以通过单击来触发不同的动作.虽然这些单击动作已经可以满足大多数需要了,但如果读者想在 ...

  5. 如何在 ActiveX 控件中使用字体

    字体的使用是ActiveX控件制作过程中不可缺少的部分.本文将深入浅出地介绍在ActiveX控件中制作过程中如何使用字体.本文所提及的ActiveX控件制作是指利用VC++6.0的MFC Active ...

  6. Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField

    导言 GridView是由一组字段(Field)组成的,它们都指定的了来自DataSource中的什么属性需要用到自己的输出呈现中.最简单的字段类型是BoundField,它仅将数据简单的显示为文本. ...

  7. 在ASP.NET 2.0中操作数据:在GridView控件中使用TemplateField

    英文原版  |   本教程的代码(C#)   |   翻译目录   |   原文目录 导言 GridView是由一组字段(Field)组成的,它们都指定的了来自DataSource中的什么属性需要用到 ...

  8. ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField(转)

    导言 The GridView is composed of a set of fields that indicate what properties from the datasource are ...

  9. 在DataList控件中删除数据记录

    (一)在DataList控件中删除记录的设计要点 在DataList控件中删除数据记录的设计相对简单一点.该功能设计的重点在于当用户单击[删除]按钮时,程序如何判断要删除的是哪一行.使DataList ...

最新文章

  1. 使mysql查询条件区分大小写 数据库搜索中大小写敏感性
  2. VoVNet:实时目标检测 backbone网络
  3. linux zip 开源工程,7-Zip 18.06 发布,开源数据压缩程序
  4. 图片垂直居中的CSS技巧
  5. 国外自由车流ETC电子收费系统集成技术发展状况
  6. 使用FastReport 3.0及以上版本创建动态报表的几个技巧(转)
  7. 编写安装配置DNS服务脚本
  8. k3刷机 重置_斐讯K3刷LEDE固件成功刷机教程
  9. 微商怎么引流客源,谈谈我这些年引流的经验
  10. 中国人民银行征信中心登录时无法输入密码,控件安装无效
  11. C#海康摄像机SDK二次开发
  12. OpenAI发布ChatGPT:程序员瞬间不淡定了
  13. 苏嵌//毛丽媛//2018.7.11
  14. 【数据结构】常见数据结构类型
  15. linux 查询某字符串得行号和截图指定范围得文件
  16. 分省三农数据超大量面板数据集(1999-2020年)
  17. 软件开发可行性分析九个流程的理解
  18. 一文读懂 druid连接池
  19. 来了!STM32移植LuatOS,潘多拉示例全新教程
  20. 电磁循迹智能车基于stm32cubeMX、HAL库—我的第一辆智能车

热门文章

  1. Excel VBA ListBox列表框学习
  2. RabbitMQ学习笔记(四)-消息确认机制
  3. 关于Docker入门的一些事(4)
  4. 笔记本html到电视,笔记本怎么连接液晶电视 笔记本连接液晶电视方法【详解】...
  5. LY3006A手电筒集成IC可充电多功能 LED 驱动控制芯片
  6. 深度学习训练经验之迭代次数与准确率之惑
  7. 实验吧-who are you?
  8. Windows Defender内核隔离无法关闭,提示此设置由管理员进行管理
  9. 0906期最新上市——“架构师大阅兵”
  10. 查看twitter浏览记录_您可以看到谁查看了您的Twitter个人资料吗?