opencv图像处理
贪玩老学长
当你觉得数学很重要的时候,你就是真正的科研人员了。
我是平头哥,只想打死各位或者被各位打死。
--菜鸟祥哥
展开
-
结构相似形特征(SSIM)原理简介及python实现
结构相似形特征(SSIM)原理简介及python实现转载 2020-10-25 21:52:03 · 415 阅读 · 0 评论 -
一天撸完Python-Opencv常用函数和基本思想(续集)
1 形态学转换形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行操作。需要输入两个参数,一个原始图像,第二个被称为结构化元素或核,它是用来操作的性质的。两个基本的形态学操作是腐蚀核膨胀。他们的变体构成了开运算,闭运算,梯度等。1.1 腐蚀就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但是前景仍然是白色)。这是怎么做到的呢?卷积核沿着图像滑动,如果与卷积核对应的原图像的所有像素值都是1,那么中心元素就保持原来的像素值,否则就变为零。这回产生什么影响呢?根据卷积核的大小靠近前原创 2020-10-23 19:38:09 · 261 阅读 · 0 评论 -
一天撸完Python-Opencv常用函数和基本思想(续集)
昨天有事情,本来打算一天分享完的(就是快速看看关键的部分),然后上午看了一会,有事情去忙了,所以没有完成这个工作,今天下午打开一看收到小伙伴的评价,其实自己也是个小白,因为论文的需要,需要图像的知识,自己能力有限,但是会尽力分享每一次学习的心得,希望一方面督促自己学习,另一方面也可以和大家分享交流,做学术嘛,就是要一起学习才能共同进步。感谢小伙伴的支持,谢谢关注!1 图像阈值图像阈值理论代码:import numpy as npimport cv2import matplotlib原创 2020-10-22 20:55:37 · 210 阅读 · 0 评论 -
一天撸完Python-Opencv常用函数和基本思想
前沿我使用的是Pycharm编译器用anaconda配置的解释器安装的库:numpy matplotlib cv2等在进行下面的工作之前,给各位说说pycham中添加个人信息#!/usr/bin/python3.6# -*- coding: utf-8 -*-# @Time : ${DATE} ${TIME}# @Author : super_kun# @Email : xxxxxxxxxxx@xxx.com# @File : ${NAME}.py# @Softwar原创 2020-10-21 15:04:23 · 635 阅读 · 3 评论 -
第10讲 Opencv卷积神经网络CNN
深度原创 2020-09-19 15:43:44 · 1583 阅读 · 0 评论 -
第9讲 opencv-python背景建模
帧差法由于场景中的目标在运动 ,目标的影像在不同图像 帧中的位置不同。该算法对时间上连续的两帧图像进行查分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现木匾的检测功能。帧间法非常简单,但是会引入噪音和空洞问题。混合高斯模型import numpy as npimport cv2# 经典测试视频cap = cv2.VideoCapture("test.MP4")# 形态学操作需要使用kernel = cv2.getStruct原创 2020-09-19 11:42:28 · 577 阅读 · 0 评论 -
第8讲 图像尺度空间Opencv 降版本实现匹配
module ‘cv2.cv2’ has no attribute ‘xfeatures2d’(问题已解决,亲测有效!)转载 2020-09-18 16:07:19 · 329 阅读 · 0 评论 -
第7讲 python-opencv傅里叶变换补充
import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread("lena.jpg",0) # 后面的0可以使得其编程灰度图,不写的话就是彩色img = cv2.medianBlur(img,5)# opencv官方要求使用float32img_float32 = np.float32(img)dft = cv2.dft(img_float32,flags=cv2.DFT_COMPLEX_OUTPU原创 2020-09-14 12:11:18 · 162 阅读 · 0 评论 -
第7讲 python-opencv图像处理直方图
import cv2import numpy as npimport matplotlib.pyplot as pltlena = cv2.imread("car.jpg")# lena = cv2.cvtColor(lena,cv2.COLOR_BGR2GRAY)lena = cv2.medianBlur(lena,5)hist = cv2.calcHist([lena],[0],None,[256],[0,256]) # 传入图像,通道(0代表灰度)None掩膜图像,数目和像素范围..原创 2020-09-13 22:38:19 · 173 阅读 · 0 评论 -
第6讲图像处理(图像金字塔,轮廓绘制,模板匹配)
高斯金字塔向下采样,金字塔的底部到顶部向上采样,金字塔的顶部底部扩充完,用0填充。import cv2import numpy as nplena = cv2.imread("zhx.jpg")# lena = cv2.cvtColor(lena,cv2.COLOR_BGR2GRAY)# lena = cv2.medianBlur(lena,5)def cv_show(name,img): cv2.imshow(name,img) cv2.waitKey(0)原创 2020-09-13 18:13:01 · 663 阅读 · 0 评论 -
第5讲 图像处理边缘检测Canny
Canny边缘检测1)使用高斯滤波器,以平滑图像,滤除噪声2)计算图像汇总每个像素点的梯度和方向3)应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散相应4)应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘5)通过抑制孤立的若边缘最终完成边缘检测双阈值import cv2import numpy as nplena = cv2.imread("lena.jpg")lena = cv2.cvtColor(lena,c原创 2020-09-13 14:49:46 · 279 阅读 · 0 评论 -
第4讲 图像梯度(sobel,scharr,laplacian)
一般来讲,只有色彩变化较大的地方才会产生,也就是说,只有在边缘。图像sobel算子这个是水平方向的梯度,右边减去左边同样,下边减去上边。是竖直方向原始图像现在采用sobel算子,水平方向右边减去左边。如下所示:可以看到只有左边的,因为我们采用的是右边减去左边,其中中间的为白色,减去左边的黑丝就是 >0,因此会保留,而右边减去左边,是黑色减去中间,就成了黑丝减去白色<0所以会不显示。也就是只有一半如果想把右边的一半也显示,怎么办了?当然可以考虑将负数编程整数麻,试试原创 2020-09-13 13:13:00 · 462 阅读 · 0 评论 -
python-opencv 第三讲 形态学处理
以下要讲解腐蚀核膨胀,从上面你应该可以看出来这在干啥了。1 腐蚀import cv2import numpy as npimg = cv2.imread('zhx.jpg')cv2.imshow('img',img)kernel = np.ones((3,3),np.uint8)erosion1 = cv2.erode(img,kernel,iterations=1)erosion2 = cv2.erode(img,kernel,iterations=2)erosion3 =.原创 2020-09-12 12:26:16 · 295 阅读 · 0 评论 -
python-opencv 第二讲 滤波(均值、高斯、中值)
首先加载一张照片import cv2 # BGRimport matplotlib.pyplot as pltimport numpy as npdef cv_show(name,img): cv2.imshow(name,img) cv2.waitKey(0) cv2.destroyAllWindows()img = cv2.imread('lena.jpg')cv_show('lena',img)显然可知,图像上存在大量的椒盐噪声均值滤波# 均值滤波原创 2020-09-11 22:20:30 · 355 阅读 · 0 评论 -
python-opencv 第1讲 图像的基础知识 +图像读取,显示操作
数据读取-图像cv2.imread_color彩色图形CV.imread_grayscale灰度图像import cv2 # BGRimport matplotlib.pyplot as pltimport numpy as np%matplotlib inlineimg = cv2.imread("zhx.jpg")cv2.imshow('zhx',img)cv2.waitKey(0)# cv2.waitKey(0)cv2.destroyAllWindows()由于每一次都要写原创 2020-09-11 16:07:16 · 260 阅读 · 0 评论 -
Pytorch实现手写体识别(基于CNN卷积神经网络)实操详解(附完整代码free)
手写体作为深度学习的“Hello world”,几乎所有的课程都会讲到这个,今天带着大家一些看看吧。如果对你有所帮助,点个赞给个小关注,以后一起交流学习。前言首先和大家讲讲我为啥会看到这个,因为我需要写论文,关于图像增强的,比如夜视,曝光,去雨,去雪,去雾等,以往采用的是传统的方法“直方图,暗通道,retinex”等,现在随着深度学习的发展,只从12年人机大战,深度学习迅速爆棚,由于结果惊艳,所以深度学习进入了人们感兴趣的领域。好不夸张的说,现在各行各业都在使用深度学习,这个也是我需要研究的课题。原创 2020-09-09 10:57:57 · 4233 阅读 · 0 评论 -
opencv:灰度化公式法
import torchimport numpy as npimport cv2import numpy as np# Gray scaledef BGR2GRAY(img): b=img[:,:,0].copy() g=img[:,:,1].copy() r=img[:,:,2].copy() out=0.2*r+0.7*g+0.1*b out=out.astype(np.uint8) #图像由unit8类型,即0~255的整数部分构成。转载 2020-08-27 16:53:22 · 435 阅读 · 0 评论 -
使用numpy对像素值进行操作,使用Matplotlib进行显示
对于numpy而言处理图像是不错的我们知道一副图像是由像素值组成的,通过使用Numpy读取图像,获取像素值,然后对采集的Numpy数组进行操作,从而实现图像相关变换。arr = plt.imread("1.jpg")plt.subplot(121)plt.imshow(arr)# 使用下面这个才可以看到图像,类似opencv中的waitKey(0)不然即使读取出来了还是一闪而过arr = arr[::-1]plt.subplot(122)plt.imshow(arr)plt.waitfor原创 2020-08-23 20:18:13 · 896 阅读 · 0 评论 -
vs2015/2017配置opencv4.4.0详解 从0到配置完成 一步步操作
1 首先安装vs2015/2017根据个人情况安装,网上教程很多,这里做赘述,搞不定的留言给我,索要安装方法和安装包,我使用的是2015社区版本的。2 下载opencv4.4.0文件,官网上去找,自己准备3 解压里面文档是这样的4 打开vs进行配置你首先新建一个文件目录,选择一个空白文档就是C++新建之类的然后,点击注意上面两个使我们需要操作的首先对第一个包含目录进行配置同理,找到这个操作完后不要立马关闭,再这个地方添加下面这个完成以上操作,然后应用确定,找到复制上面原创 2020-08-13 16:12:00 · 1254 阅读 · 0 评论 -
opencv三种经典滤波
方框滤波均值滤波高斯滤波1.方框滤波#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>#includeusing namespace std;using namespace cv;...原创 2019-01-16 22:59:07 · 362 阅读 · 0 评论 -
Opencv(基础处理)
Opencv图像腐蚀#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>using namespace cv;int main(){Mat img = imread(“D:/123/1.jpg”); // 读取原始图片imshow(“original”, i...原创 2019-01-14 22:32:20 · 112 阅读 · 0 评论 -
opencv非线性滤波
1.中值滤波(medianBlur)//--------------------------------------【程序说明】-------------------------------------------// 程序说明:《OpenCV3编程入门》OpenCV3版书本配套示例程序35// 程序描述:中值滤波medianBlur函数的使用示例程序// 开发测试所用操作系统: W...原创 2019-01-18 11:53:50 · 576 阅读 · 0 评论 -
高斯滤波
#include<opencv2/core/core.hpp>#include<opencv2/highgui.hpp>#include<opencv2/imgproc.hpp>using namespace cv;int main(){//open ptg pictureMat ptg = imread(“D:\123\2.jpg”);//sh...原创 2019-01-17 22:44:44 · 175 阅读 · 0 评论
分享