当前位置:   article > 正文

opencv 图像色彩空间转化

opencv 图像色彩空间转化

今天看了b站贾志刚的课,觉得不错,特地做学习笔记来和小伙伴分享

贾志刚的这个好像是2.0版本,30小时的,语言更加精炼,适合初级入门学习

第一节是常规安装   看他的步骤装就行了,记得配置完点应用再点确定,我第一次就是 没点然后就失败了,又得重配置一次

第二节就是基础的imread读取  imshow输出

Mat src = imread("E:/download/images/test.png",IMREAD_GRAYSCALE);//两个参数imread为读取 im表 image 
//imread读取进来以Mat形式存在。Mat表是矩阵  表示二维存储  可逗号加 IMREAD_GRAYSCALE表示灰度

imshow("输入窗口", src);//imshow有两个参数  第一个参数表示名称  第二个表示数据对象
 //imshow只支持256位显示和浮点数的显示
 

输入图片太大,看不见全貌的话    增加代码

namedWindow("输入窗口", WINDOW_FREERATIO);//名字 flag  底下show名称和这个相同
    //做的是一个尺寸调整  太大的调整 

注意名字 flag  底下show名称和这个相同imshow("输入窗口", src);\

最好能加一个if条件判断错误

    if (src.empty()) {
        printf("could not load image...\n");
        return -1;
    }

接下来是第三节  图像色彩空间转换

思路和cpp平时项目相同  一个.h写一类,然后.cpp来实现函数,再将.cpp写入main.cpp文件中,视为添加函数

quick.h

  1. #pragma once
  2. #include<opencv2/opencv.hpp>
  3. using namespace cv;
  4. class QuickDemo {
  5. public:
  6. void colorSpace_Demo(Mat &image);
  7. };

 quickdemo.cpp

  1. #include<quick.h>
  2. void QuickDemo::colorSpace_Demo(Mat &image) {
  3. Mat gray, hsv;//灰度格式 和hsv格式
  4. //cv2.cvtcolor函数是Python OpenCV中一个非常常用的函数,
  5. //主要作用是将图像从一种颜色空间转换为另一种颜色空间
  6. cvtColor(image, hsv, COLOR_BGR2HSV);//RGB即是代表红、绿、蓝三个通道的颜色
  7. //HSV三通道 H范围 0->180 S,V都是零到255 H和S表示颜色,V通道决定亮度
  8. cvtColor(image, gray, COLOR_BGR2GRAY);
  9. imshow("HSV", hsv);
  10. imshow("灰度", gray);
  11. //图像保存 imwrite
  12. imwrite("E:/hsv.jpg",hsv);//三个参数 保存目录 对象
  13. imwrite("E:/gray.jpg",gray);
  14. }

test01.cpp

  1. #include<opencv2/opencv.hpp>
  2. #include<quick.h>
  3. #include<iostream>
  4. using namespace cv;
  5. using namespace std;
  6. //imread和imshow
  7. int main(int argc, char** argv) {
  8. Mat src = imread("E:/download/images/test.png");//两个参数imread为读取 im表 image
  9. //imread读取进来以Mat形式存在。Mat表是矩阵 表示二维存储 可逗号加 IMREAD_GRAYSCALE表示灰度
  10. if (src.empty()) {
  11. printf("could not load image...\n");
  12. return -1;
  13. }
  14. namedWindow("输入窗口", WINDOW_FREERATIO);//名字 flag 底下show名称和这个相同
  15. //做的是一个尺寸调整 太大的调整
  16. imshow("输入窗口", src);//imshow有两个参数 第一个参数表示名称 第二个表示数据对象
  17. //imshow只支持256位显示和浮点数的显示
  18. QuickDemo qd;//quickdemo.cpp实现
  19. qd.colorSpace_Demo(src);//调用函数
  20. waitKey(0);//会阻塞,类似于pause。上面的图就会一直显示在那
  21. //waitKey(1);表示停顿一毫秒 以此类推
  22. destroyAllWindows();//对前面创建的显示窗口都要销毁掉
  23. return 0;
  24. }

实现效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/79139
推荐阅读
相关标签
  

闽ICP备14008679号