opencv:图像的读取,显示,写入文件

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    // 图像内存对象,在C++中是以Mat对象形式保存的
    Mat img = imread("f:/temp/images/lena.jpg");
    /*
        imread的默认选项:IMREAD_COLOR,默认会将图像加载为一张BGR的彩色图像
        IMREAD_GRAYSCALE:加载一张灰度图像
        IMREAD_ANYCOLOR:
        IMREAD_UNCHANGED:不改变,加载透明通道的图片要使用这个
    */

    // 读取灰度图像
    //Mat img = imread("C:\\Users\\hp\\Desktop\\Emoticon\\q.jpg", IMREAD_GRAYSCALE);

    // 判断图像是否读取成功,如果读取成功,empty返回true
    if (img.empty())
    {
        printf("Could not find the image!\n");
        return -1;
    }

    // 创建窗口,默认选项是 WINDOW_AUTOSIZE
    // 选项:
    // WINDOW_AUTOSIZE:表示自动匹配,不好修改窗口大小
    // WINDOW_FREEATIO:可以修改窗口的大小
    // WINDOW_NORMAL:也可以修改窗口
    namedWindow("input", WINDOW_AUTOSIZE);

    // 在指定窗口上显示一张图像
    // imshow 本身不支持透明通道的显示
    imshow("input", img);

    // 色彩空间转换
    Mat gray;
    // 转换为灰度图像
    // 参数1:要转换的图像,参数2:存储转换结果的,参数3:转换的选项
    cvtColor(img, gray, COLOR_BGR2GRAY);
    imshow("gray", gray);

    // 将图像写入文件
    // 这个图像如果保存出错了,是不会有提示的
    imwrite("f:/temp/test/gray.png", gray);

    waitKey(0);

    // 销毁所有窗口
    destroyAllWindows();
}

原文地址:https://www.cnblogs.com/wbyixx/p/12241821.html

时间: 2024-11-07 11:02:23

opencv:图像的读取,显示,写入文件的相关文章

Java 读取、写入文件——解决乱码问题

读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码.ANSI编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码.) 因此可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8).而二进制文件可看成是变长编码的,因为是值编码嘛,多少

Redis 中文入库成功,读取数据写入文件乱码问题

最近需要用到redis ,但是在编码这个问题上,纠结了很久. 需求 : 每天一个进程将中文文件入库到redis中(不定时更新) ,另外几个进程读取redis中的信息 ,并处理数据结果. 使用的redis模块 : redis-py 问题 : 入库正常,读取数据成功,以GBK编码写入文件出现异常. 通过以下参数连接 redis : client  = redis.StrictRedis(host='localhost', port=6379, db=0, password="***") 从

读取和写入 文件 (NSFIleManger 与 NSFileHandle)

读取和写入 文件 //传递文件路径方法 -(id)initPath:(NSString *)srcPath targetPath:(NSString *)targetPath { self = [super init]; if (self != nil) { _srcPath = [srcPath copy]; _targetPath = [targetPath copy]; } return self; } //开始读文件 -(void)startRead { NSFileManager *f

php中读取以及写入文件的方法总结

==>读取文件内容(方法一) $fileData = fread($fileStream,filesize($filePath)); 注意: 文本文件读取到网页上显示时,由于换行符不被解释,文本不换行显示, 解决办法:将\r\n替换为<br/>[str_replace('\r\n','<br/>',$fileData);] ==>读取文件内容(方法二) file_get_contents($filePath); 将整个文件读取到一个字符串(内部自动关闭文件流) ==&g

【转】MFC中用CFile读取和写入文件2

原文网址:http://blog.sina.com.cn/s/blog_623a7fa40100hh1u.html CFile提供了一些常用的操作函数,如表1-2所示. 表1-2  CFile操作函数 函数 含义 Open 打开文件 Close 关闭文件 Flush 刷新待写的数据 Read 从当前位置读取数据 Write 向当前位置写入数据 GetLength 获取文件的大小 Seek 定位文件指针至指定位置 SeekToBegin 定位文件指针至文件头 SeekToEnd 定位文件指针至文件

C#读取和写入文件

一.读取文件 如果你要读取的文件内容不是很多, 可以使用 File.ReadAllText(FilePath) 或指定编码方式 File.ReadAllText(FilePath, Encoding)的方法. 它们都一次将文本内容全部读完,并返回一个包含全部文本内容的字符串 string str = File.ReadAllText(@"c:\temp\ascii.txt"); //也可以指定编码方式  string str2 = File.ReadAllText(@"c:\

C# Byte[]数组读取和写入文件

protected void ByteToString_Click(object sender, EventArgs e) { string content = this.txtContent.Text.ToString(); if (string.IsNullOrEmpty(content)) { return; } //string 转为byte数组 byte[] array = Encoding.UTF8.GetBytes(content); //将byte数组转为string strin

c#通过FileStream读取、写入文件

网上找过一些FileStream读取写入文件的代码,但是都有些小问题. 于是自己整理一下,以备不时之需.说明一下,以下代码我都运行过. 1.FileStream读取文件 // FileStream读取文件 public static string FileStreamReadFile(string filePath) { byte[] data = new byte[100]; char[] charData = new char[100]; FileStream file = new File

iOS学习 plist读取和写入文件

干iOS开发时间,后经常用来plist文件.  那plist什么文件是它? 它的全称是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.plist .因此通常被称为 plist文件.文件是xml格式的. Plist文件通经常使用于储存用户设置.也能够用于存储捆绑的信息 我们创建一个项目来学习plist文件的读写. 1.创建项目Plistdemo 项目创建之后能够找到项目相应的plist文件.打开例如以下图所看到的: 在编辑器中显示相似与表格

小型资源管理器,IO操作,读取和写入文件和目录的常用操作

解决方案: 小总结: 用IO流,的file,DirectoryInfo的方法绑定Treeview控件上和删除,读取, 可以熟练掌握一下IO流 主页面: 1 private void Form1_Load(object sender, EventArgs e) 2 { 3 4 //创建一个根节点 5 TreeNode root = new TreeNode(); 6 root.Text = "D:\\"; //显示的是文件夹名称(单独名称) 7 root.Tag = "D:\\