机器视觉 第三节 OpenCV入门初步

《CSDN 人工智能学习笔记》第一部分 机器视觉 第三节 OpenCV入门初步


声明:本系列博客为本人学习CSDN人工智能课程的学习笔记,仅供学习交流使用。
这里引用百度百科关于OpenCV的描述给大家简单说明一下OpenCV
“OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。”
通过上面的描述,相信大家已经对OpenCV有了简单的认知,下面我将借助Matlab、Python以及C++语言通过图像平滑、图像大小改变以及图像阈值化操作三个方面来开展OpenCV的入门学习。好了,话不多说,开始学习吧。

图像读取与显示

Matlab


Python

import cv2 as cv

# 图片地址指针
imgAddress = r'D:\OpenCV\sources\samples\data\lena.jpg'
# 读取图片
img = cv.imread(imgAddress)
# 显示图片
cv.imshow("Hello,world", img)
# 给定时间内等待用户按键触发
cv.waitKey()
# 关闭所有窗口
cv.destroyAllWindows()

C++

#include "pch.h"
#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;

int main()
{
	//读取图片地址字符串
	const char *fn = "D:\\OpenCV\\sources\\samples\\data\\lena.jpg";
	//读取图片
	Mat image = imread(fn);
	//显示原始图片
	imshow("Hello,World", image);
	waitKey(0);
}

图像高斯平滑

Matlab


Python

# 利用GaussianBlur函数对原始图像进行高斯滤波
imgGauss = cv.GaussianBlur(img, (5, 5), 0)
# 显示处理后的图像
cv.imshow("Gaussian Blur image", imgGauss)

C++

	//新建高斯图片
	Mat imageGauss;
	//原始图片高斯滤波
	GaussianBlur(image, imageGauss, Size(5, 5), 0);
	//显示高斯滤波后的图片
	imshow("Gaussian filter Image", imageGauss);

图像缩放

Matlab


Python

# 利用resize函数对原始图像进行缩放
imgResize = cv.resize(img, (int(img.shape[1]/2), int(img.shape[0]/2)))
# 显示处理后的图像
cv.imshow("resize image", imgResize)

# 利用pyrDown函数对原始图像进行金字塔缩放
imgPyr = cv.pyrDown(img)
# 显示处理后的图像
cv.imshow("pyrDown image", imgPyr)

C++

	//新建放缩图片
	Mat imageResize,imagePyr;
	//设置缩放后的图片尺寸
	Size imageResizeSize = Size(image.cols / 2, image.rows / 2);
	//对原始图片采用立方差值的方法进行缩放,CV_INTER_LINEAR - 双线性差值 (缺省使用)
	resize(image, imageResize, imageResizeSize,CV_INTER_CUBIC);
	//显示利用resize函数放缩处理后的图片
	imshow("Resize Image", imageResize);
	//利用pyrDown函数进行缩小处理
	pyrDown(image, imagePyr);
	//显示利用pyrDown金字塔压缩处理后的图片
	imshow("Pyr金字塔压缩处理图片", imagePyr);

颜色空间及阈值化

Matlab


Python

# 利用cvtColor函数对原始图像进行色彩变换
imgGray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# 利用cvtColor函数获得原始图像的HSV分量图像
imgHSV = cv.cvtColor(img, cv.COLOR_BGR2HSV)
# 显示处理后的图像
cv.imshow("cvtColor image", imgGray)
cv.imshow("Hue", imgHSV[:, :, 0])
cv.imshow("Saturation", imgHSV[:, :, 1])
cv.imshow("Value", imgHSV[:, :, 2])

C++

	//新建色彩转换图像、灰度图像
	Mat imageCVT, imageGray, imageHSV, imageHSVChannels[3];
	//利用cvtColor函数将原始图像转换为灰度图像
	cvtColor(image, imageCVT, COLOR_BGR2GRAY);
	//利用cvtColor函数将原始图像转换为HSV图像
	cvtColor(image, imageHSV, COLOR_BGR2HSV);
	//利用通道分离函数,分离图像
	split(imageHSV, imageHSVChannels);
	//利用threshold函数将灰度图像转换为二值化图像
	threshold(imageCVT, imageGray, 120, 0xff, THRESH_BINARY);
	//显示灰度图像,HSV图像分量和二值化图像
	imshow("gray image", imageCVT);
	imshow("Hue", imageHSVChannels[0]);
	imshow("Saturation", imageHSVChannels[1]);
	imshow("Value", imageHSVChannels[2]);
	imshow("BlackWhite image", imageGray);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值