![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算机与机器视觉
主要讲述计算机视觉与机器视觉相关算法,部分将添加必要代码。
gz7seven
研究生,主要研究计算机视觉,图像处理,深度学习,医疗图像(近红外与CT图像)处理,图像配准
展开
-
图像旋转-----opencv
使用opencv和C++对图像进行旋转操作。原创 2022-06-14 18:29:53 · 1536 阅读 · 0 评论 -
去除二值图像图像中面积较大较小部分 opencv
去除二值图像图像中面积较大较小部分 opencv不废话直接上代码/****************************************************************************** 功能:* 输入二值图像,去除较大或较小面积面积(利用轮廓的大小),返回结果* 参数:* src: 输入灰度图像* AreaLargerLimit: 去除阈值* AreaSmallerLimit: 去除阈值*************原创 2021-07-02 17:09:38 · 1102 阅读 · 2 评论 -
图像的平移与旋转 opencv
图像的平移与旋转 opencv1、图像的平移2、图像的旋转1、图像的平移2、图像的旋转直接上程序import cv2import mathimport numpy as nppoint_low_x = 394point_low_y = 351point_center_x = 400point_center_y = 300img = cv2.imread('Revise1_084043.bmp', 0)rows, cols = img.shapetranslation_x原创 2021-06-08 16:11:39 · 509 阅读 · 0 评论 -
自适应中值滤波器(基于OpenCV实现)
本文主要介绍了自适应的中值滤波器,并基于OpenCV实现了该滤波器,并且将自适应的中值滤波器和常规的中值滤波器对不同概率的椒盐噪声的过滤效果进行了对比。最后,对中值滤波器的优缺点了进行了总结。空间滤波器一个空间滤波器包括两个部分:一个邻域,滤波器进行操作的像素集合,通常是一个矩形区域对邻域中像素进行的操作一个滤波器就是在选定的邻域像素上执行预先定义好的操作产生新的像素,并用新的像素替换掉原来像素形成新的图像。通常,也可以将滤波器称之为核(kernel),模板(template)或...原创 2020-07-17 09:57:40 · 1077 阅读 · 0 评论 -
OpenCV中resize()函数的插值方式对比
在进行图像缩放过程中,opencv中的resize函数是最常用的,其速度相对较快,只需要一行代码即可。此函数中提供5种缩放插值的方法。在下文中将进行对比。1、resize函数简介void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR );参数含义参数含义: InputArray src -原图像 Output原创 2021-04-23 14:01:08 · 2941 阅读 · 0 评论 -
将中英文路径中连续图像转换为视频 python
在逐帧处理视频数据后,很多时候是将其保存为连续的图像,为了容易查看处理的结果要将连续的图形合成视频。本文提供此代码,且可以处理中文路径的图像数据,具体如下:import osimport cv2import globimport matplotlib.pyplot as pltdef Img2Vi(dir_in): height = 400 # 图像的高 width = 112 # 图像的宽 fps = 20 # 帧率 video = cv2.Vi原创 2021-03-11 16:21:46 · 169 阅读 · 1 评论 -
Python配置opencv和opencv-contrib
Python3.6没有办法下载opencv3.4.1及以下版本,而opencv3.4.2以上的opencv设计专利问题,有一些函数无法使用。因此,我们有两个方法来解决一些函数无法调用问题。降低Python的版本,但是降低版本依然会遇到其他配置问题,如配置TensorFlow和PyTorch等;安装与opencv相对应的opencv-contrib;我采用第二种方法,安装opencv3.4.2与对应的opencv-contrib库。具体安装如下:打开cmd直接,分别按照以下步骤安装即可:pip原创 2021-02-09 22:08:15 · 8063 阅读 · 0 评论 -
图像中保存数据结果或是文本 opencv
在图像中直接显示相应的结果可以使数据统计或是观察更为方便,本文重要讲一下如何使用opencv的puttext()函数进行此操作。总体上介绍一下puttext()函数其接口为:void putText( Mat& img, const string& text, Point org, int fontFace,double fontScale, Scalar color, int thickness=1, int lineType=8 );参数介绍参数1: Mat& img,原创 2021-01-26 16:48:18 · 199 阅读 · 0 评论 -
opencv findcontours内存错误的解决过程
在使用findcontours函数过程中,出现莫名其妙的错误,造成程序无法运行,根据网上的所有解决措施做了一下实验都没有解决,后来发现一个令人尴尬的问题,现在大体说一下。首先说一下网上给的方法,具体如以下几个网址,大家可以自行查看:1、https://www.cnblogs.com/wangtianning1223/p/13588505.html2、https://blog.csdn.net/fightingforcv/article/details/784238663、根据自己的VS版本重新编译o原创 2021-01-07 16:10:43 · 864 阅读 · 0 评论 -
二值图像轮廓提取并输出最大轮廓
在传统算法中,二值图像的轮廓提取是非常重要的图像处理方法,在opencv中也有相应的接口函数,在实际工程中,仅仅需要直接使用即可,本文不对具体的算法进行过多的阐述,直接上代码:Mat maxContour(Mat src) { vector<vector<cv::Point>> contours; Mat dst = Mat::zeros(src.rows, src.cols, CV_8UC1); // 参数 findContours(src, contours,原创 2020-12-28 08:54:06 · 1056 阅读 · 0 评论 -
摄像头更改“友好名称“方法
1.键盘win+R,进入“运行”界面,输入regedit;2.点击“计算机”;3.Ctrl+F,搜索要更改摄像头名称的名称,;4.等待搜索结果,并逐个进行更改;5.更改完成后摄像头名称即改为需要的名字;原创 2020-09-24 16:13:57 · 8372 阅读 · 0 评论 -
提取图像中部分区域并生成新图 opencv
以下为相关的代码,其中(startX,startY)为区域的左上方点坐标,(endX,endY)为右下角的点坐标。即,根据左上点与右下点就可以获取相应的矩形区域。具体代码如下所示:getROI(cv::Mat src, int startX, int startY, int endX, int endY){ Rect select; int rectWidth = endX - startX; int rectHeight = endY - startY; select = Rect(start原创 2020-09-22 17:44:16 · 627 阅读 · 0 评论 -
批量处理图像并保存------opencv
#include "opencv2/opencv.hpp" #include "opencv2/imgproc/imgproc.hpp"#include <string>using namespace std;using namespace cv;int main(){ Mat src; int Num = 96; // 要处理的图像个数 for (unsigned int i = 1; i < Num; i++) { //int 转换为 string原创 2020-07-21 09:12:57 · 262 阅读 · 0 评论 -
直方图实现快速中值滤波opencv
中值滤波能够有效去除图像中的异常点,具有去除图像噪声的作用。传统中值滤波的算法一般都是在图像中建立窗口,然后对窗口内的所有像素值进行排序,选择排序后的中间值作为窗口中心像素滤波后的值。由于这个做法在每个像素点处都要建立窗口并排序,非常耗时,尤其是有大量的冗余计算。如下图:黄色区域+中间粉色区域是第一个像素为中心建立的滤波窗口,粉色区域+右边蓝色区域为同一行第二个像素为中心建立的滤波窗口。传统做法对每一个窗口内所有像素排序,那么中间粉色区域的像素就会被重复的做排序运算,存在大量冗余计算。如果窗口移动一个像原创 2020-07-17 17:27:53 · 820 阅读 · 1 评论 -
边缘检测的核心
关于边缘检测:图像的边缘形成的原因是图像的灰度在某一区域的突然变化使得人眼才有了识别轮廓的功能。所以对于计算机识别边缘我们也可以用数学的方法定量的找出图像中灰度阶跃不连续或是线条不连续的地方,比如说一阶导数的极值点或二阶导数的零点的方法找到边缘。(图片摘自百度)。当我们继续往下学时,越来越多的概念涌了出来,各种算子、幅度、差分、阈值、卷积运算。其实我们没必要将边缘检索的数学推导都看懂。我们只要了解它的基本原理后,在运用它的结论就足以达到我们的目的。我们总结了一下:什么Prewitt算子、Sobel算子原创 2020-07-17 09:51:54 · 223 阅读 · 0 评论 -
图像运算中的一阶导与二阶导
首先,图像是离散的数据,若求其导数就要用差分的方法,常用的差分方法是前向差分(forward differencing)与中心差分(central differencing)。一阶导本质上求的是斜率,二阶导求的是拐点。一阶导连续函数,其微分可表达为,或, (1.1)对于图像这种离散的数据,其可以表达为:,或, ...原创 2019-07-04 15:46:40 · 11763 阅读 · 0 评论