opencv
机器视觉代码记录,有待完善
@白圭
积沙成塔
展开
-
opencv学习日志1-RGB图像转为灰度图
前言这篇文章主要讲述如何通过读取图像三个通道上的值取平均来获得灰度图。一、代码#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg"); int height = srcMat.rows; int width = srcMat.cols; fo原创 2022-02-02 17:10:04 · 710 阅读 · 0 评论 -
opencv学习日志2-库函数灰度图显示
前言这篇文章通过调用opencv库函数完成三通道图像与灰度图的转化一、pandas是什么?#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg",0); imshow("src", srcMat); waitKey(0);}总结上述代码原创 2022-02-02 17:12:20 · 474 阅读 · 0 评论 -
opencv学习日志3-固定阈值二值化
前言这篇文章主要讲述如何通过手动设置阈值,完成图像的二值化。一、代码代码如下(示例):#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg"); int height = srcMat.rows; int width = srcMat.cols;原创 2022-02-02 17:14:42 · 325 阅读 · 0 评论 -
opencv学习日志4-深复制和浅复制
前言这篇文章通过代码来讲述深复制和浅复制的区别一、代码#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg"); cv::Mat deepMat; cv::Mat shallowMat; shallowMat = srcMat; srcMat.c原创 2022-02-02 17:21:13 · 133 阅读 · 0 评论 -
opencv学习日志5-画圆
前言一、代码//画圆#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat displayMat = cv::Mat::zeros(500, 500, CV_8UC3); // cv::waitKey(0);// cv::Mat displayMat; //0.绘制的Mat图像 //1.线段起点 // 2.线段终点 //3.线段颜原创 2022-02-02 17:22:56 · 283 阅读 · 0 评论 -
opencv学习日志6-画线段
前言这篇文章主要讲述opencv中如何绘制一条线段一.代码#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat displayMat = cv::Mat::zeros(500, 500, CV_8UC3); // cv::waitKey(0);// cv::Mat displayMat; //0.绘制的Mat图像 //1.线段起点 //原创 2022-02-02 17:25:19 · 493 阅读 · 0 评论 -
opencv学习日志7-画矩形框
前言这篇文章主要讲述如何在opencv中绘制一个矩形框一、代码//画矩形框#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat displayMat = cv::Mat::zeros(500, 500, CV_8UC3); cv::Rect rect; rect.x = 10; rect.y = 10; rect.width = 20;原创 2022-02-02 17:27:05 · 708 阅读 · 0 评论 -
opencv学习日志8-图像灰度直方图(手动计算)
前言这篇文章主要讲述如何手动计算并且绘制图像的灰度直方图一、pandas是什么?//第二题 直方图#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;float chance[256];int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg"); float height = srcMat.rows原创 2022-02-03 01:58:08 · 1608 阅读 · 0 评论 -
opencv学习日志9-图像的三通道分离
前言这篇文章主要讲述如何分离图像三个通道的值并显示在当前界面。一、pandas是什么?//第三题 太阳能板#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;float chance[256];int main(){ cv::Mat src_color = imread("C://Users//john//Desktop//solar_cell_01.png"); //cv::i原创 2022-02-03 02:00:51 · 2114 阅读 · 0 评论 -
opencv学习日志10-读取视频并且获取一帧和帧率
前言这篇文章主要讲述如何读取视频并且获取一帧图像和帧率一、代码#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ VideoCapture cap; cap.open("C://Users//john//Desktop//VID20211016121229.mp4"); if (!cap.isOpened()) { std::cout <<原创 2022-02-03 02:16:42 · 3078 阅读 · 0 评论 -
opencv学习日志11-肤色检测
前言这篇文章主要讲述opencv中关于肤色检测的代码。一、肤色检测//第一题 肤色检测#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ VideoCapture cap(0); double scale = 0.5; //0-188 //肤色 double i_minH = 0; double i原创 2022-02-08 23:30:15 · 431 阅读 · 0 评论 -
opencv学习日志12-大津法二值化
前言这篇文章中主要讲述opencv中如何使用大津法对图像进行二值化操作。一、大津法二值化//第三题 大津法二值化#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg", 0); cv::Mat resMat;// imshow("src", sr原创 2022-02-08 23:30:22 · 645 阅读 · 0 评论 -
opencv学习日志13-腐蚀、膨胀、开闭运算
前言这篇文章中主要讲述图像处理基本操作:腐蚀、膨胀和开闭运算。一、代码#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg", 0); cv::Mat resMat; cv::Mat res2Mat; cv::Mat kernel(5, 5, C原创 2022-02-08 23:30:28 · 215 阅读 · 0 评论 -
opencv学习日志14-统计图片中硬币个数(不考虑重叠)
前言这篇文章中主要讲述图像处理中如何统计硬币的个数。一、代码#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg", 0); cv::Mat resMat; cv::Mat res2Mat; cv::Mat Matstate; cv::Mat原创 2022-02-08 23:30:39 · 702 阅读 · 0 评论 -
opencv学习日志15-统计焊点个数并输出
前言这篇文章主要讲述opencv中如何统计焊点个数并且输出。一、代码#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg", 0); cv::Mat resMat; cv::Mat resover; cv::Mat resover_dec; c原创 2022-02-08 23:30:46 · 369 阅读 · 0 评论 -
opencv学习日志16-回形针计数
前言这篇文章主要讲述opencv图像处理中如何统计回形针个数并且计数。一、代码#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg", 0); cv::Mat resMat; cv::Mat resover; cv::Mat resover_de原创 2022-02-08 23:30:53 · 773 阅读 · 4 评论 -
opencv学习日志17-均值滤波
前言这篇文章中主要讲述opencv图像处理中的中值滤波。一、均值滤波//第二题 均值滤波#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ VideoCapture cap; cap.open("C://Users//john//Desktop//VID.mp4"); cv::Size rect; rect.width = 5; rect.height原创 2022-03-16 19:09:01 · 2741 阅读 · 0 评论 -
opencv学习日志33-高斯均值滤波
前言这篇文章汇总主要讲述opencv图像处理中的高斯均值滤波。一、高斯均值滤波//第三题 高斯均值滤波#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ VideoCapture cap; cap.open("C://Users//john//Desktop//VID.mp4"); cv::Size rect; rect.width = 5; rect原创 2022-02-11 17:10:11 · 123 阅读 · 0 评论 -
opencv学习日志32-边缘提取
前言这篇文章中主要讲述opencv图像处理中边缘提取算法的应用。一、边缘提取//第四题 边缘提取#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(){ VideoCapture cap; cap.open("C://Users//john//Desktop//VID.mp4"); cv::Size rect; rect.width = 5; rect.he原创 2022-02-11 17:10:24 · 562 阅读 · 0 评论 -
opencv学习日志19-磨皮
前言这篇文章主要讲述opencv图像处理中磨皮算法的应用。一、磨皮算法//第五题 磨皮/*注释:image.copyTo(imageROI,mask); 把image这张图复制(copy to)到imageROI上,且image对应mask中像素值为0(黑色)的像素点都不会贴到imageROI上。*/#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namesp原创 2022-02-08 23:31:00 · 537 阅读 · 0 评论 -
opencv学习日志18-canny算子
前言这篇文章主要讲述opencv中canny算子的使用。一、canny算子//第一题 调用canny算子#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ cv::Mat dstMat; cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg",0); Ca原创 2022-02-11 17:10:18 · 314 阅读 · 0 评论 -
opencv学习日志20-仿射变换(定义旋转度数和缩放大小)
前言这篇文章主要讲述opencv中仿射变换的应用。一、仿射变换//第二题 仿射变换 旋转缩放(定义旋转度数和缩放大小)#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ cv::Mat dstMat; cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg",原创 2022-03-16 19:08:47 · 2871 阅读 · 0 评论 -
opencv学习日志21-仿射变换(定义点之间对应关系)
前言这篇文章中主要讲述opencv中仿射变换的进一步应用。一、代码//第三题 仿射变换 旋转缩放(定义点之间对应关系)#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ cv::Mat dstMat; cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg",原创 2022-03-16 19:08:54 · 2148 阅读 · 0 评论 -
opencv学习日志22--投影变换
前言这篇文章主要讲述opencv学习日志中投影变换的使用。一、投影变换//第四题 投影变换#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ cv::Mat dstMat; cv::Mat srcMat = imread("C://Users//john//Desktop//1.jpg",1); //变换前的三点坐原创 2022-03-16 19:08:39 · 2094 阅读 · 0 评论 -
opencv学习日志23--霍夫变换1
前言这篇文章主要讲述opencv中霍夫变换的使用。一、霍夫变换1//第二题 霍夫划线#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ cv::Mat dst; cv::Mat src = imread("C://Users//john//Desktop//1.jpg",0); std::vector<cv原创 2022-03-16 19:08:29 · 2608 阅读 · 0 评论 -
opencv学习日志24--霍夫变换2(可限制最大间隔,最短长度)
前言这篇文章中主要讲述opencv中霍夫变换的使用。一、霍夫变换2//第三题 霍夫划线(可限制最大间隔,最短长度)#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ cv::Mat dst; cv::Mat src = imread("C://Users//john//Desktop//1.jpg", 0); s原创 2022-02-11 17:11:10 · 139 阅读 · 0 评论 -
opencv学习日志26--检测圆孔并且标记
前言这篇文章主要讲述opencv图像处理中的检测圆孔并且标记一、代码//检测圆孔并且标记#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ cv::Mat dst; cv::Mat dstbin; cv::Mat dsttemp; cv::Mat finalpicture; cv::Mat src = imrea原创 2022-02-11 17:11:25 · 1187 阅读 · 2 评论 -
opencv学习日志27--芯片定位
前言这篇文章中主要讲述opencv图像处理中芯片定位的应用。一、芯片定位//芯片定位#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ cv::Mat dst; cv::Mat dstbin; cv::Mat dsttemp; cv::Mat resMat; cv::Mat Matstate; cv::Mat原创 2022-02-11 17:11:02 · 994 阅读 · 4 评论 -
opencv学习日志28--检测红色杯盖
前言这篇文章主要讲述opencv中红色杯盖的检测。一、检测红色杯盖//第三题 检测红色杯盖#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){// VideoCapture cap(0); double scale = 0.5; //0-188 //肤色 double i_minH = 150; do原创 2022-02-11 17:10:54 · 212 阅读 · 0 评论 -
opencv学习日志29--gamma校正
前言这篇文章中主要讲述opencv图像处理中gamma校正的应用。一、gamma校正//第一题 gamma校正#include <opencv2/opencv.hpp>#include <iostream>#include<cmath>using namespace cv;using namespace std;int main(){ cv::Mat dst; cv::Mat dstbin; cv::Mat dsttemp; cv::Mat原创 2022-02-11 17:10:48 · 476 阅读 · 1 评论 -
opencv学习日志30--直方图均衡
前言这篇文章主要讲述opencv图像处理算法中的直方图均衡。一、直方图均衡//第二题 直方图均衡#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;float chance[256];int main(){ cv::Mat src_color = imread("C://Users//john//Desktop//1.jpg"); //cv::imshow("src_color"原创 2022-02-11 17:10:41 · 91 阅读 · 0 评论 -
opencv学习日志31--背景差分
前言这篇文章主要讲述opencv图像处理中的背景差分。一、背景差分//第一题 背景差分#include <opencv2/opencv.hpp>#include <iostream>#include<cmath>using namespace cv;using namespace std;int main(){ //计数器 int cnt = 0; Mat frame; Mat background; Mat subpic; Mat b原创 2022-02-11 17:10:33 · 395 阅读 · 0 评论
分享