zoukankan      html  css  js  c++  java
  • 显示图像

    底层操作

    为矩阵定义了一系列方便的操作符。我们可以将一个已经存在的灰度图像 img 变成全黑色:

    img = Scalar(0);
    

    选择感兴趣区域:

    Rect r(10, 10, 100, 100);
    Mat smallImg = img(r);
    

    将 Mat 转为 C API 数据类型:

    Mat img = imread("image.jpg");
    IplImage img1 = img;
    CvMat m = img;
    

    注意此处无数据复制操作。

    将彩色图像转为灰度图像:

    Mat img = imread("image.jpg"); // loading a 8UC3 image
    Mat grey;
    cvtColor(img, grey, CV_BGR2GRAY);
    

    将图像的类型从8UC1转为32FC1:

    src.convertTo(dst, CV_32F);
    

    显示图像

    在算法开发过程中,查看算法的中间结果是非常有用的。OpenCV提供了方便查看图像的方法。类型为 8U 的图像可以使用如下方法显示:

    Mat img = imread("image.jpg");
    
    namedWindow("image", CV_WINDOW_AUTOSIZE);
    imshow("image", img);
    waitKey();
    

    调用 waitKey() 会进入一个消息循环,来等待 image 窗口上的按键动作。 类型为 32F 的图像需要转为 8U 类型。如下:

    Mat img = imread("image.jpg");
    Mat grey;
    cvtColor(img, grey, CV_BGR2GREY);
    
    Mat sobelx;
    Sobel(grey, sobelx, CV_32F, 1, 0);
    
    double minVal, maxVal;
    minMaxLoc(sobelx, &minVal, &maxVal); //find minimum and maximum intensities
    Mat draw;
    sobelx.convertTo(draw, CV_8U, 255.0/(maxVal - minVal), -minVal);
    
    namedWindow("image", CV_WINDOW_AUTOSIZE);
    imshow("image", draw);
    waitKey();
  • 相关阅读:
    sql查询
    PHP常用的设计模式
    PHP内存管理和垃圾回收机制
    记一次面试
    获取py文件函数名及动态调用
    正确解决 mysql 导出文件 分隔符 问题
    解决ValueError: cannot convert float NaN to integer
    Python ---接口返回值中文编码问题
    pandas python 读取大文件
    【neo4J】后台关闭后,前端还能打开视图
  • 原文地址:https://www.cnblogs.com/xuqq/p/3996591.html
Copyright © 2011-2022 走看看