显示:MFC中采用分段线性对比度处理图像并且显示在控件中
功能:获取原图后,通过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中采用分段线性对比度处理图像并且显示在控件中相关推荐
- WPF中如何将List<string>数据绑定到DataGrid控件中
一,前端 <DataGrid x:Name="Onlinedatagrid" AutoGenerateColumns="True" HorizontalA ...
- C#+AE 调整TOCControl控件中图层的显示顺序
基本思路如下:利用鼠标左键将需要调整顺序的图层移动至目标位置. ①需要涉及到TOCControl的OnMouseDown事件来获取要调整的图层, ②OnMouseUp事件获得目标图层和索引号, ③再利 ...
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
在ASP.NET 2.0中操作数据:在GridView控件中使用TemplateField 英文原版 | 本教程的代码(C#) | 翻译目录 | 原文目录 导言 GridView ...
- android 的a标签,Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)...
在5.2.1节和5.2.2节介绍了标签以及TextView自动识别的特殊文本(网址.电话号.Email等),这些都可以通过单击来触发不同的动作.虽然这些单击动作已经可以满足大多数需要了,但如果读者想在 ...
- 如何在 ActiveX 控件中使用字体
字体的使用是ActiveX控件制作过程中不可缺少的部分.本文将深入浅出地介绍在ActiveX控件中制作过程中如何使用字体.本文所提及的ActiveX控件制作是指利用VC++6.0的MFC Active ...
- Scott Mitchell 的ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField
导言 GridView是由一组字段(Field)组成的,它们都指定的了来自DataSource中的什么属性需要用到自己的输出呈现中.最简单的字段类型是BoundField,它仅将数据简单的显示为文本. ...
- 在ASP.NET 2.0中操作数据:在GridView控件中使用TemplateField
英文原版 | 本教程的代码(C#) | 翻译目录 | 原文目录 导言 GridView是由一组字段(Field)组成的,它们都指定的了来自DataSource中的什么属性需要用到 ...
- ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField(转)
导言 The GridView is composed of a set of fields that indicate what properties from the datasource are ...
- 在DataList控件中删除数据记录
(一)在DataList控件中删除记录的设计要点 在DataList控件中删除数据记录的设计相对简单一点.该功能设计的重点在于当用户单击[删除]按钮时,程序如何判断要删除的是哪一行.使DataList ...
最新文章
- 使mysql查询条件区分大小写 数据库搜索中大小写敏感性
- VoVNet:实时目标检测 backbone网络
- linux zip 开源工程,7-Zip 18.06 发布,开源数据压缩程序
- 图片垂直居中的CSS技巧
- 国外自由车流ETC电子收费系统集成技术发展状况
- 使用FastReport 3.0及以上版本创建动态报表的几个技巧(转)
- 编写安装配置DNS服务脚本
- k3刷机 重置_斐讯K3刷LEDE固件成功刷机教程
- 微商怎么引流客源,谈谈我这些年引流的经验
- 中国人民银行征信中心登录时无法输入密码,控件安装无效
- C#海康摄像机SDK二次开发
- OpenAI发布ChatGPT:程序员瞬间不淡定了
- 苏嵌//毛丽媛//2018.7.11
- 【数据结构】常见数据结构类型
- linux 查询某字符串得行号和截图指定范围得文件
- 分省三农数据超大量面板数据集(1999-2020年)
- 软件开发可行性分析九个流程的理解
- 一文读懂 druid连接池
- 来了!STM32移植LuatOS,潘多拉示例全新教程
- 电磁循迹智能车基于stm32cubeMX、HAL库—我的第一辆智能车
热门文章
- Excel VBA ListBox列表框学习
- RabbitMQ学习笔记(四)-消息确认机制
- 关于Docker入门的一些事(4)
- 笔记本html到电视,笔记本怎么连接液晶电视 笔记本连接液晶电视方法【详解】...
- LY3006A手电筒集成IC可充电多功能 LED 驱动控制芯片
- 深度学习训练经验之迭代次数与准确率之惑
- 实验吧-who are you?
- Windows Defender内核隔离无法关闭,提示此设置由管理员进行管理
- 0906期最新上市——“架构师大阅兵”
- 查看twitter浏览记录_您可以看到谁查看了您的Twitter个人资料吗?