利用Opencv在PictureControl中显示IplImage格式的照片。

bool MyDlg::IfExistFile(CString strFilePath)
{CFile file;if (file.Open(strFilePath,CFile::modeRead)){file.Close();return true;}return false;
}bool MyDlg::FillBlankToPicCtrl(const int& nID)
{CDC *pDC = GetDlgItem(nID)->GetDC();CRect rect;GetDlgItem(nID) ->GetClientRect( &rect );pDC->FillSolidRect(rect, GetSysColor(COLOR_ACTIVEBORDER));//填充当前背景色
    ReleaseDC(pDC);return true;
}void MyDlg::ShowIplImage(IplImage* img, const int& nID)
{BITMAPINFO bifInfo;int nBpp = img ? (img->depth & 255) * img->nChannels : 0 ;FillBitmapInfo(&bifInfo, img->width, img->height, nBpp);ShowImageInWindow(img, GetDlgItem(nID), bifInfo);
}void MyDlg::FillBitmapInfo( BITMAPINFO *bmi, int width, int height, int bpp)
{ASSERT( bmi && width > 0 && height > 0 &&(bpp == 8 || bpp == 24 || bpp == 32) ); BITMAPINFOHEADER* bmih = &(bmi->bmiHeader); memset( bmih, 0, sizeof(*bmih));bmih->biSize   = sizeof(BITMAPINFOHEADER);bmih->biWidth  = width;bmih->biHeight = -abs(height);bmih->biPlanes = 1;bmih->biBitCount = bpp;bmih->biCompression = BI_RGB;if( bpp == 8 ){RGBQUAD* palette = bmi->bmiColors;int i;for( i = 0; i < 256; i++ ){palette[i].rgbBlue = palette[i].rgbGreen = palette[i].rgbRed = (BYTE)i;palette[i].rgbReserved = 0;}}
}void MyDlg::ShowImageInWindow(IplImage *pImg, CWnd *wnd, BITMAPINFO &bmi)
{CDC *pDC = wnd->GetDC();HDC  hDC = pDC->GetSafeHdc();CRect rect;wnd->GetClientRect(&rect);if(bmi.bmiHeader.biBitCount== 8){CPalette pal;HPALETTE hpal=NULL;HPALETTE hOldPal=NULL;::SetPaletteEntries(hpal,0,256,(LPPALETTEENTRY)bmi.bmiColors);hOldPal = ::SelectPalette(pDC->GetSafeHdc(), hpal, TRUE);}::SetStretchBltMode(pDC->m_hDC, COLORONCOLOR);::StretchDIBits(pDC->GetSafeHdc(),rect.left,rect.top,pImg->width,pImg->height,0,0,pImg->width,pImg->height,pImg->imageData,&bmi,DIB_RGB_COLORS,SRCCOPY);ReleaseDC(pDC);
}

转载于:https://www.cnblogs.com/autumoonchina/p/4280822.html

利用Opencv在PictureControl中显示照片相关推荐

  1. 利用OpenCV检测图像中的多个水果

    OpenCV检测图像中的多个水果 最近面试碰到一个图像算法题,要求: (1)检测一副图像中的多个苹果并标识出来. (2)标识时需要将图像中苹果按照从大到小给定序号,显示出来. 基于以上两点,准备利用C ...

  2. 利用OpenCV提取图像中的矩形区域(PPT屏幕等)

    ** 前言 ** 最近参加了大创项目,题目涉及到计算机视觉,学姐发了个修正图像的博客链接,于是打算用这个题目入门OpenCV. 分析问题 照片中的PPT区域总是沿着x,y,z三个轴都有倾斜(如下图), ...

  3. java利用opencv降维_opencv中PCA降维

    PCA--主成分分析,主要用在降维上. 具体原理讲解的很多,在这里就不多说了. PCA主要计算步骤如下: 1.事先把每个样本归一化,把原始数据中每个样本用一个向量表示,然后把所有样本组合起来构成一个矩 ...

  4. opencv 识别长方形_利用OpenCV检测图像中的长方形画布或纸张并提取图像内容

    问题如下: 也就是在一张照片里,已知有个长方形的物体,但是经过了透视投影,已经不再是规则的长方形,那么如何提取这个图形里的内容呢?这是个很常见的场景,比如在博物馆里看到一幅很喜欢的画,用手机找了下来, ...

  5. MFC、OpenCV初探 —— PictureControl中图片的缩放

    接上篇文章[MFC初探 -- 双击Picture Control具体位置放大图片]继续,在触摸式的工控机上,双击并不灵敏,所以我更改了实现方式.本打算使用单击来进行,在类向导中并没有找到单击消息,最后 ...

  6. python中import cv2遇到的错误及安装方法_独家利用OpenCV,Python和Ubidots来构建行人计数器程序(附代码amp;解析)...

    作者:Jose Garcia 翻译:吴振东 校对:张一豪 本文约4000字,建议阅读14分钟. 本文将利用OpenCV,Python和Ubidots来编写一个行人计数器程序,并对代码进行了较为详细的讲 ...

  7. python基于opencv的手势识别_怎么在Python3.5 中利用OpenCV实现一个手势识别功能

    怎么在Python3.5 中利用OpenCV实现一个手势识别功能 发布时间:2020-12-22 11:56:32 来源:亿速云 阅读:67 作者:Leah 怎么在Python3.5 中利用OpenC ...

  8. opencv 识别长方形_利用opencv识别并提取图片中的矩形

    这次是利用opencv来识别图片中的矩形. 其中遇到的问题主要是识别轮廓时矩形内部的形状导致轮廓不闭合. 过程如下: **1. 对输入灰度图片进行高斯滤波 2. 做灰度直方图,提取阈值,做二值化处理 ...

  9. 利用openCV实现中值滤波自定义滤波窗口尺寸的功能(类似halcon中的median_rect函数功能)

    利用openCV实现中值滤波自定义滤波窗口尺寸的功能(类似halcon中的median_rect函数功能) 在halcon图像库中有一个常用的中值滤波算子median_rect: median_rec ...

最新文章

  1. 马斯克连发三推,发布退出OpenAI内情
  2. 当CPU飙高时,它在做什么
  3. 阿里centos7 yum源
  4. tensorflow.GraphDef was modified concurrently during serialization
  5. python基础学习教程:Python基础语法
  6. mysql 失效转移_MySQL基于MHA的FailOver过程
  7. python如何读取数据时出现错误_在python3中,关于redis读取数据带有‘b’的问题...
  8. #if defined和#if !defined的含义
  9. 【转】Redis的各项功能解决了哪些问题?
  10. 射频微电子学_越老越吃香的射频工程师,如何才能成为一个出色的射频工程师?...
  11. php mysql新闻表模板_新闻列表之创建数据库
  12. swift学习之数组、字典和字符串
  13. Java面试题 — Java基础
  14. dell12v18a怎么改_拆修DELL 12V 18A电源!
  15. fiddler证书安装
  16. 学生Web开发人员练习:电影评论II
  17. jmeter事务控制器
  18. oracle clear buffer,Out 对象的 clearBuffer() 方法用来清除缓冲区里的数据,但并不把数据写到客户端。...
  19. JAVA 简洁版连连看
  20. java 矢量_[Java教程]矢量图标的使用

热门文章

  1. Python 抓取图片
  2. 在css使用PHP/ASP代码
  3. UIScrollView autolayout
  4. ZOJ - 3591 NIM
  5. ansible基本模块-shell
  6. 吴恩达《深度学习》第四门课(4)特殊应用:人脸识别和神经风格迁移
  7. 项目发布Debug和Release版的区别
  8. boxoft wav to mp3漏洞分析
  9. WCF Service 配置文件注释(转)
  10. Dapper试用简例