lovejobs

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  138 随笔 :: 3 文章 :: 46 评论 :: 28万 阅读

使用opencv前记得引入库和头文件:

1
#include<opencv2\opencv.hpp>

  

1.加载图像(cv::imread)(OPENCV 支持 JPG,PNG,TIFF等常见格式图像文件加载)

imread函数原型是:

CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );

------imread加载一副由filename指定的图像文件并返回一个Mat对象

------第一个参数是文件的完整路径,第二个参数表示加载的图像是什么类型,支持常见的三种值

-----默认值1下加载一副图像

Mat src = imread("E:\\vsprom\\learn01\\test.jpg");

-----IMREAD_UNCHANGED(<0)表示加载原图,不做任何改变

-----IMREAD_GRAYSCALE(0) 表示把原图作为灰度图像加载进来

-----IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来

 

Mat src = imread("E:\\vsprom\\learn01\\test.jpg",IMREAD_COLOR);

 

2.修改图像(cv::cvtColor) 颜色空间改变

BGR2GRAY ---------RGB图像变为灰度图像

BGR2HLS-------RGB色彩空间转为HLS色彩空间

 

    Mat output_img;
    cvtColor(src, output_img, CV_BGR2HLS);
    imshow("output image", output_img);

 

3.保存图像(cv::imwrite)

*******保存图像文件到指定目录

imwrite("D:/TEST.PNG", output_img);

*******只有8位,16位的PNG,JPG,TIFF文件格式而且是单通道或者三通道的BGR图像才可以通过这种方式保存

JPG格式

imwrite("D:/TEST.JPG", output_img);

 

 

TIFF

*******保存PNG指定格式的时候可以保存透明通道的图片

*******可以指定压缩参数

 完整代码:

复制代码
#include<opencv2\opencv.hpp>
#include<iostream>

using namespace cv;
using namespace std;

int main(int argc, char **argv)
{
    Mat src = imread("E:\\vsprom\\learn01\\test.jpg",IMREAD_COLOR);
    if (src.empty())
    {
        cout << "can not load image...\n"<<endl;
        return -1;
    }
    namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);
    imshow("test opencv setup", src);

    namedWindow("output image", CV_WINDOW_AUTOSIZE);
    Mat output_img;
    cvtColor(src, output_img, CV_BGR2HLS);
    imshow("output image", output_img);

    imwrite("D:/TEST.tif", output_img);

    waitKey(0);
    return 0;
}
复制代码

 

posted on   lovejobs  阅读(478)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示