[opencv笔记三]opencv图像简单变换

opencv作为计算机视觉,在读取和显示图片的基础上,我们来做一些简单的图像变换试试。
1.将一幅图片平滑处理

2.创建一副宽度和高度为输入图像一半尺寸的图像

3.边缘检测将输出一个单通道图像

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
#include "highgui.h"
void smooth(Mat  image);
void CreateImage(Mat  image);
void canny(Mat  image);
Mat  src, dst;
int main(int argc, char **argv) {
    /// 载入原图像
    src = imread("C:\\Users\\joy\\Pictures\\11.png", 1);

    //smooth(src);
    //CreateImage(src);
     canny(src);
}

/*对图像做简单的平滑处理
方法:对传进来的图片每个像素点3*3区域做高斯平滑*/
void smooth(Mat image) {
    cvNamedWindow("Example4-in");//创建两个窗口
    cvNamedWindow("Example4-out");

    imshow("Example4-in", image);//把加载的图片image在example4-in窗口中显示

    dst = src.clone();

    //平滑处理,输入,输出,高斯,3*3

    GaussianBlur(image, dst, Size(3, 3), 0, 0);
    imshow("Example4-out", dst);
    cvWaitKey(0);//等待按键
    cvDestroyWindow("Example4-in");//销毁窗口
    cvDestroyWindow("Example4-out");
}

//创建一副宽度和高度为输入图像一半尺寸的图像
void CreateImage(Mat image) {
    cvNamedWindow("Example4-in");//创建两个窗口
    cvNamedWindow("Example4-out");

    imshow("Example4-in", image);//把加载的图片image在example4-in窗口中显示

    dst.create(image.rows, image.cols , image.type());

    pyrDown(image, dst, Size(image.cols / 2, image.rows / 2));


    imshow("Example4-out", dst);
    cvWaitKey(0);//等待按键
    cvDestroyWindow("Example4-in");//销毁窗口
    cvDestroyWindow("Example4-out");
}

/*边缘检测将输出一个单通道图像*/
void canny(Mat image) {
    cvNamedWindow("Example4-in");//创建两个窗口
    cvNamedWindow("Example4-out");

    imshow("Example4-in", image);//把加载的图片image在example4-in窗口中显示
                                 //创建与src同类型和同大小的矩阵
    dst = src.clone();

    //将原始图转化为灰度图
    cvtColor(image,dst,COLOR_BGR2GRAY);
    //先使用3*3内核来降噪
    blur(dst, dst, Size(3, 3));

    //运行canny算子
    Canny(dst, dst, 3, 9, 3);
    imshow("Example4-out", dst);
    cvWaitKey(0);//等待按键
    cvDestroyWindow("Example4-in");//销毁窗口
    cvDestroyWindow("Example4-out");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值