C++编程常用的函数

本文介绍了如何使用CFileDialog进行文件选择,并展示了如何在C++程序中利用OpenCV的imread函数读取选定的图像文件,包括Mat对象的创建、图像类型转换和保存。此外,还涵盖了Mat对象的基本属性查看和图像处理的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、文件读写类--CFileDialog

CFileDialog FileDlg(TRUE, "*.jpg;*.bmp", "*.jpg;*.bmp", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "影像文件()");

    if (FileDlg.DoModal() != IDOK)

    {

        return;

    }

    CString strImgName = FileDlg.GetPathName();  获取路径  名字

2、基于对话框程序--“编辑框”对应变量赋值与刷新

void CxxxxxDlg::OnBnClickedButtoncalgauss()

{

    // TODO: 在此添加控件通知处理程序代码

    UpdateData(TRUE);   //将控件中的数据交换到变量中

    UpdateData(FALSE);   //将变量中的数据交换到控件中

}

3、OpenCV图像读取函数(opencv的官方文档document)

Mat m_srcimg = imread(strImgName.GetBuffer(), IMREAD_GRAYSCALE);

    imshow("src image", m_srcimg);

imread()读取图⽚⽂件,imread函数有两个参数,第⼀个参数是图⽚路径,第⼆个参数表⽰读取图⽚的形式,有三种:

  1. 1. IMREAD_COLOR:加载彩⾊图⽚,这个是默认参数,可以直接写1。
  2. 2. IMREAD_GRAYSCALE:以灰度模式加载图⽚,可以直接写0。
  3. 3. IMREAD_UNCHANGED:包括alpha,可以直接写-1。

测试OpenCV配置成功的代码:

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;

void main()
{
    Mat image = imread("D:/图片/xx大学/本部大门.jpg", 1);
    imshow("xx大学本部大门", image);
    waitKey();
    return;
}

4、OpenCV中的imread()与Mat

mat src=imread("文件路径",1);  //加载为彩色图像,imread()返回的是一个mat.

int width = src.cols;//获取图像宽(矩阵的列数)
int height = src.rows;//获取图像高(矩阵的行数)
int dims = src.dims;//获取图像维度
int channels = src.channels;//获取图像通道数
int depth = src.depth();//获取图像深度
int type = src.type();//获取图像类型

U 表示无符号整型、S 表示有符号整型、F表示浮点数。

创建Mat的格式如下:

Mat src = Mat(1, 1, CV_8UC3);

 保存Mat代码:

Mat img = Mat(200, 200, CV_8UC3);
img.setTo(Scalr(127, 127, 127));
imwrite("要保存的图像路径", img);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值