OPenCv4 c++入门笔记(B站30讲课程的部分笔记)

这篇博客是作者基于B站30讲OpenCV4 C++课程的个人学习笔记,涵盖从图像颜色转换到几何图形绘制等多个知识点。通过创建QuickDemo类,每个成员函数对应一个具体的图像处理操作,如像素操作、图像色彩空间转换、几何图形绘制等。文章提供了代码实现,并强调了最佳学习资源为OpenCV官方文档和搜索引擎。
摘要由CSDN通过智能技术生成

这是一篇OpenCv4 C++版本入门的个人笔记,是B站课程30讲的部分笔记。代码中创建一个QuickDemo类,类中的每一个公有成员函数对应一个知识点。

分别有:1、将原图转为HSV和GRAY图像显示并保存;2、进行像素操作,加减乘除;3、滚动条调整亮度;4、键盘输入响应;5、改变图像颜色风格;6、像素逻辑运算;7、通道分离与合并;8、图像色彩空间转换;9、图像像素统计,最大最小值,均值方差;10、在图像中绘制几何图形;11、绘制多边形;12、鼠标响应,绘制矩形;13、像素类型转换与归一化;14、图像放缩;15、图像翻转;16、图像旋转;17、调用摄像头。

 具体程序代码:

main.cpp

// test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <opencv2\opencv.hpp>
#include "quickopencv.h"

using namespace std;
using namespace cv;

Mat img;

int main(int argc,char** argv)
{
	img = imread("D:/exercise/opencv4/dog.jpeg");// 图像色彩空间转换用pig.jpg
	if (img.empty())
	{
		cout << "请确认图像名称是否正确!" << endl;
		return -1;
	}
	namedWindow("Original drawing", WINDOW_FREERATIO);
	imshow("Original drawing", img);

	QuickDemo qd;
	//qd.colorSpace_Demo(img);//将原图转为HSV和GRAY图像显示并保存
	//qd.operator_demo(img);//进行像素操作
	//qd.teacking_bar_demo(img);//滚动条调整亮度
	//qd.key_demo(img);//键盘输入响应
	//qd.color_style_demo(img);//改变图像颜色风格
	//qd.bitwise_demo(img);//图像像素逻辑操作
	//qd.channels_demo(img);//图像分离与合并
	//qd.inrange_demo(img); // 图像色彩空间转换
	//qd.pixel_static_demo(img);//图像像素统计,最大最小值,均值方差
	//qd.drawing_demo(img);//在图像中绘制几何图形
	//qd.polyline_drawing_demo();//绘制多边形
	//qd.mouse_drawing(img);使用鼠标绘制矩形
	//qd.norm_demo(img);//像素类型转换与归一化
	//qd.resize_demo(img);//图像放缩
	//qd.flip_demo(img);//图像翻转
	//qd.rotate_demo(img);//图像旋转
	  qd.video_demo(img);//使用摄像头
	waitKey(0);
}

(注意:图片路径根据具体实际进行导入),可逐个调用各个类成员函数,进行OpenCv的学习。

quickopencv.cpp

#include "quickopencv.h"
#include <vector>

void QuickDemo::colorSpace_Demo(Mat& image)
{
	Mat gray, hsv;
	cvtColor(image, hsv, COLOR_BGR2HSV);//HSV分别表示色度、饱和度和亮度
	cvtColor(image, gray, COLOR_BGR2GRAY);
	imshow("HSV drawing", hsv);
	imshow("GRAY drawing", gray);

	imwrite("D:/exercise/opencv4/HSVdog.jpeg", hsv);
	imwrite("D:/exercise/opencv4/GRAYdog.jpeg", gray);
}

void QuickDemo::operator_demo(Mat& image)
{
	//加减乘除可以用,add()、subtract()、multiply()、divide()
	Mat dst;
	dst = image + Scalar(50, 50, 50);//这种情况下,对每个像素进行操作,像素值超过255会截断,值就为255
	imshow("加法操作",dst);//减法同理,在这不做展示了


	dst = image / Scalar(2, 2, 2);
	imshow("除法操作", dst);

	multiply(image, Scalar(2, 2, 2), dst);
	imshow("乘法操作", dst);//乘法,像素值超过255会截断,值就为255

}

//滑动条改变图像亮度--------------------------------------------------------------
int lightness;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值