C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示

这篇具有很好参考价值的文章主要介绍了C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相关链接

C++&Python&Csharp in OpenCV 专栏

【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料+课件笔记)

OpenCV4 C++ 快速入门视频30讲 - 系列合集

OpenCV4 C++ 课程笔记

前言

在上一章纠结过教程的选择之后,还是觉得老老实实从零开始学OpenCV,从OpenCV C++视频教程开始。

这里确保你已经拥有了三语言环境。而且用于CSharp的代码和C++的代码差不多,所以我会按照C++,CSharp,Python的顺序写代码

C++&Python&C# 三语言OpenCV从零开发(1):环境配置

Mat是什么

Mat - 基本图像容器

OpenCV2:Mat属性type,depth,step

Mat是图像的基本容器,将图像信息转化为数字信息,MAT本质上是一个矩阵。

读取图片

我们试试读取图片
C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&Python&Csharp in OpenCV,c++,python,c#

C++

#include <opencv2/opencv.hpp>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc.hpp>  
#include<iostream>  
using namespace std;
using namespace cv;
int main()
{
    //注意,文件的路径必须是反斜杠/
    Mat src = imread("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png");
    //显示图片
    imshow("C++ Png", src);
    waitKey(0);
    destroyAllWindows();
    return 0;
}

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

C#

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

 internal class Program
 {
     static void Main(string[] args)
     {

         Mat src = Cv2.ImRead("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png");
         //显示图片
         Cv2.ImShow("CSharp", src);
         Cv2.WaitKey(0);
         Cv2.DestroyAllWindows();
     }
 }

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

Python

Python和C++最大的区别就是少了一个变量的命名

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

import cv2
# python中需要np来辅助
import numpy as np

src = cv2.imread("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png")
cv2.imshow("Python",src)

cv2.waitKey(0)
cv2.destroyAllWindows()

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

灰度处理

OpenCV 提供了读取灰度图像的接口

  • CV2.IMREAD_COLOR:彩色图像
  • CV2.IMREAD_GRAYSCALE:灰度图像
    C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

C++

#include <opencv2/opencv.hpp>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc.hpp>  
#include<iostream>  
using namespace std;
using namespace cv;
int main()
{
    //注意,文件的路径必须是反斜杠/
    //IMREAD_GRAYSCALE灰度读取
    Mat src = imread("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png",IMREAD_GRAYSCALE);
    //显示图片
    imshow("C++", src);
    waitKey(0);
    destroyAllWindows();
    return 0;
}

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

CSharp

using OpenCvSharp;

namespace HelloOpenCV
{
    internal class Program
    {
        static void Main(string[] args)
        {

            // 由于C# 有枚举类型,命名更加舒服
            Mat src = Cv2.ImRead("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png",ImreadModes.Grayscale);
            //显示图片
            Cv2.ImShow("CSharp", src);
            Cv2.WaitKey(0);
            Cv2.DestroyAllWindows();
        }
    }
}

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

Python

import cv2
# python中需要np来辅助
import numpy as np

# IMREAD_GRAYSCALE,灰度读取
src = cv2.imread("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png",cv2.IMREAD_GRAYSCALE)
cv2.imshow("Python",src)

cv2.waitKey(0)
cv2.destroyAllWindows()

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

打印图像信息

C++

#include <opencv2/opencv.hpp>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc.hpp>  
#include<iostream>  
using namespace std;
using namespace cv;
int main()
{
    //注意,文件的路径必须是反斜杠/
    //IMREAD_GRAYSCALE灰度读取
    Mat src = imread("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png",IMREAD_GRAYSCALE);
    
    
    //显示图片
    imshow("C++", src);
    cout << endl;
    //打印图像信息
    cout << "图像的行数为: " << src.rows << endl;  //获取图像的高度,行数;
    cout << "图像的列数为: " << src.cols << endl;  //获取图像的宽度,列数;
    cout << "图像的通道数为: " << src.channels() << endl;  //获取图像的通道数,彩色图=3,灰度图=1;
    cout << "图像的尺寸为: " << src.size << endl;  //获取图像的尺寸,行*列;
    waitKey(0);
    destroyAllWindows();
    return 0;
}

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

Csharp

一般来说,只要C++跑通了,C# 的代码大差不差

using OpenCvSharp;

namespace HelloOpenCV
{
    internal class Program
    {
        static void Main(string[] args)
        {

            // 由于C# 有枚举类型,命名更加舒服
            Mat src = Cv2.ImRead("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png",ImreadModes.Grayscale);
            Console.WriteLine($"图像的行数为:{src.Rows}");
            Console.WriteLine($"图像的列数为:{src.Cols}");
            Console.WriteLine($"图像的通道数为:{src.Channels()}");
            Console.WriteLine($"图像的尺寸为:{src.Size()}");
            //显示图片
            Cv2.ImShow("CSharp", src);
            Cv2.WaitKey(0);
            Cv2.DestroyAllWindows();
        }
    }
}

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

Python

import cv2
# python中需要np来辅助
import numpy as np

# IMREAD_GRAYSCALE,灰度读取
src = cv2.imread("D:/workSpace/OpenCV/HellOpenCV/Resources/OpenCV.png",cv2.IMREAD_GRAYSCALE)

# 打印图片信息
# Python将其信息统一放在了shape里面,如果是单通道,通道个数直接没有
print('行,列,通道',src.shape)
print('type:',src.dtype)

# print(str.shape)
cv2.imshow("Python",src)

cv2.waitKey(0)
cv2.destroyAllWindows()

C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#
C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#
C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示,C++&amp;Python&amp;Csharp in OpenCV,c++,python,c#

总结

如果说C++ 版本是原版的话。那么

  • C++和Python:Python少了变量的声明,算子基本一致
  • C++和C#:除非命名方式,C#为大驼峰,其它基本完全一致

我感觉我的学习的路子应该是对的,毕竟是新手,三个语言的基础的算子还是都要了解一下的。文章来源地址https://www.toymoban.com/news/detail-811206.html

到了这里,关于C++&Python&C# 三语言OpenCV从零开发(3):图像读取和显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++&Python&C# 三语言OpenCV从零开发(1):环境配置

    由于老王我想转机器视觉方向的上位机行业,我就打算开始从零学OpenCV。但是目前OpenCV有两个官方语言,C++和Pyhont。C# 有大佬做了对应的OpenCV的版本的适配。目前三个语言的特点是 C++:运行效率最快,但是语法难度极大,开发难度极大 Python:开发效率极快,但是运行效率极慢,

    2024年01月16日
    浏览(59)
  • C++&Python&C# 三语言OpenCV从零开发(2):教程选择

    C++PythonCsharp in OpenCV OpenCV 有官方的教程和简单的视频教程: OpenCV 官方教程 B站也有相关的视频教学 OpenCV4 C++ 快速入门视频30讲 - 系列合集 OpenCV4 C++ 课程笔记 那么选择文本教程还是视频教程呢?我个人建议是 视频教程:零基础,一点都没有接触过 文本教程:有一定的基础,

    2024年01月21日
    浏览(56)
  • C++&Python&C# 三语言OpenCV从零开发(5):ROI截取

    C++PythonCsharp in OpenCV 专栏 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料+课件笔记) ROI,本意是感兴趣区域。但是使用起来就和PS的截取部分区域差不多。 我之前写过一篇Python 的代码 Python+OpenCV 零基础学习笔记(6):ROI 其它的相关文章 OpenCV之感

    2024年01月25日
    浏览(48)
  • 如何使用OpenCV进行图像读取和显示?

    使用OpenCV进行图像读取和显示是计算机视觉领域中的常见任务之一。下面是关于如何使用OpenCV进行图像读取和显示的简要步骤和示例代码。    首先,你需要安装OpenCV库并确保正确导入它。然后,按照以下步骤执行图像读取和显示操作: 导入OpenCV库: 读取图像文件: 在这个

    2024年02月06日
    浏览(45)
  • OpenCV 入门教程:图像读取和显示

    2023年07月08日
    浏览(53)
  • 【Qt 多线程+opencv 读取和显示图像】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 提示:以下是本篇文章正文内容,下面案例可供参考 加入了信号与槽机制来处理多线程中的图像数据: 创建工作线程类 :首先创建一个工作线程类,它从

    2024年02月19日
    浏览(39)
  • OpenCV读取一张深度图像并显示

    2024年02月12日
    浏览(39)
  • QT+opencv【opencv学习篇】OpenCV 读取、显示和保存图像

    目录   一、OpenCV 读取图像 OpenCV 读取函数 参数: 二、OpenCV 显示图像 imshow函数 imshow函数功能 imshow函数原型 三、OpenCV 保存图像 四、结果和代码   OpenCV 允许我们对图像执行多种操作,但要做到这一点,需要读取一个图像文件作为输入,然后我们可以对其执行各种操作。Ope

    2024年02月16日
    浏览(46)
  • 加载美女图片之OpenCV 图像读取与显示

    📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++和openCv阶段——目标Windows,MySQL,Qt,数据结构与算法,openCv,Linux,多线程,会持续分享学习成果和小项目的 📖作者主页:热爱编程的小K 📖专栏链接:OpenCV 🎉欢迎各位→点赞👏 + 收藏💞 + 留言🔔​ 💬

    2023年04月15日
    浏览(55)
  • VC++中使用OpenCV读取图像、读取本地视频、读取摄像头并实时显示

    最近闲着跟着油管博主murtazahassan,学习了一下LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision,对应的Github源代码地址为:Learn-OpenCV-cpp-in-4-Hours OpenCV是一个开源的计算机视觉库,其官网地址为:https://opencv.org/,对应Github源码地址为:https://github.com/opencv/opencv,目前来说

    2024年01月17日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包