64,654
社区成员
发帖
与我相关
我的任务
分享
// 滤波处理1Dlg.h : 头文件
//
#pragma once
// C滤波处理1Dlg 对话框
class C滤波处理1Dlg : public CDialogEx
{
// 构造
public:
C滤波处理1Dlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_MY1_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
void showMatImgToWnd(CWnd*pWnd, Mat img);
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedDakai();
afx_msg void OnBnClickedLvbo();
//void showMatImgToWnd(CWnd*pWnd, Mat&img);
};
void showMatImgToWnd(CWnd*pWnd, Mat img){
if (img.empty()){
return;
}
static BITMAPINFO *bitMapinfo = NULL;
static bool First = TRUE;
if (First){
BYTE *bitBuffer = new BYTE[40 + 4 * 256];
if (bitBuffer == NULL){
return;
}
First = false;
memset(bitBuffer, 0, 40 + 4 * 256);
bitMapinfo = (BITMAPINFO*)bitBuffer;
bitMapinfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bitMapinfo->bmiHeader.biPlanes = 1;
for (int i = 0; i < 256; i++){
bitMapinfo->bmiColors[i].rgbBlue = bitMapinfo->bmiColors[i].rgbGreen = bitMapinfo->bmiColors[i].rgbRed = (BYTE)i;
}
}
bitMapinfo->bmiHeader.biHeight = -img.rows;
bitMapinfo->bmiHeader.biWidth = img.cols;
bitMapinfo->bmiHeader.biBitCount = img.channels() * 8;
CRect drect;
pWnd->GetClientRect(drect);//pWnd指向CWnd类的一个指针
CClientDC dc(pWnd);
HDC hDC = dc.GetSafeHdc(); //HDC是Windows的一种数据类型,是设备
SetStretchBltMode(hDC, COLORONCOLOR);
StretchDIBits(hDC, 0, 0, drect.right, drect.bottom, 0, 0, img.cols, img.rows, img.data, bitMapinfo, DIB_RGB_COLORS, SRCCOPY);
}
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/contrib/contrib.hpp"
#include <opencv2/imgproc/imgproc_c.h>
using namespace cv;