图像处理(3)均值滤波
12import cv2 as cvimport numpy as np
图像滤波(低通滤波)1234img = cv.imread("def.jpg", cv.IMREAD_COLOR)cv.imshow('img', img)cv.waitKey(0)cv.destroyAllWindows()
卷积原理下面说一下卷积的原理。
显然,就是拿一个小矩阵在大矩阵上做点积乘法,得到一个值代替原来的像素。所以对于$n\cdot n$的矩阵,假设卷积核shi$m\cdot m$那么卷积之后的结果矩阵大小为$(n-m+1)\cdot (n-m+1)$,如图所示,卷积用来提取特征。
参数还有步长,也就是卷积核每次移动的单位。上面例子默认为1,如果步长为p,那么最终卷积结果的大小为
[\frac{(n-m) + 2p}{p}]可以带入尝试,结果正确,下面是代码。
1234blur = cv.blur(img, (5, 5))#进行平滑处理cv.imshow('blur', blur)cv.waitKey(0)cv.destroyAll ...
图像处理(4)腐蚀操作
123import cv2 as cvimport numpy as npimport ipykernel
腐蚀原理这里是针对二值图像,黑白图像!可以说其矩阵元素是由0,1组成,0表示黑,1即255表示白。我们用一个全1的卷积核进行卷积,比如33的卷积核,每一次点乘运算的时候,如果图像中对应3\3个元素的值也都是1,这样最终结果就输出1,否则,全是0。
显然,上述操作就会导致,边界处外面是黑,里面是白,那么在边界处进行卷积时,结果会把原来像素位置变为0,也就是白色部分向内腐蚀!腐蚀可以迭代,显然迭代次数越多,边界越向内,腐蚀就会越深,一直到腐蚀没了!
其最大的作用就是比如在下图中,字上有一些非常刺眼的噪声,就是那些格格不入的白线。
我们用腐蚀几次就可以把噪声去除了!
1234567#腐蚀操作img = cv.imread("def.jpg", cv.IMREAD_COLOR)kernel = np.ones((5, 5), np.uint8)#矩阵表示核数,越大腐蚀越多erosion = cv.erode(img, kernel, iterations=1)#迭 ...
图像处理(6)开运算与闭运算
1234import numpy as npimport cv2 as cvimport matplotlib.pyplot as pltimport ipykernel
12345678#开运算:先腐蚀,再膨胀。img = cv.imread('def.jpg', 1)kernel = np.ones((5, 5), np.uint8)opening = cv.morphologyEx(img, cv.MORPH_OPEN, kernel)#此处只需要一个开运算函数,即可代表刚才两个过程cv.imshow('opening', opening)cv.waitKey(0)cv.destroyAllWindows()
12345678#闭运算:先膨胀,再腐蚀。img = cv.imread('def.jpg', 1)kernel = np.ones((5, 5), np.uint8)closing = cv.morphologyEx(img, cv.MORPH_CLOSE, kernel)#此处只需要一个闭运算函数,即可代表刚才 ...
图像处理(7)梯度运算
1234import numpy as npimport cv2 as cvimport matplotlib.pyplot as pltimport ipykernel
1234567891011#梯度运算 = 膨胀-腐蚀,得到轮廓#膨胀 = 对象周围的像素值和自身像素值的最大值#腐蚀 = 对象周围的像素值和自身像素值的最小值img = cv.imread('def.jpg',cv.IMREAD_COLOR)kernel = np.ones((5,5),np.uint8)gradient = cv.morphologyEx(img, cv.MORPH_GRADIENT, kernel)cv.imshow('gradient',gradient)cv.waitKey(0)cv.destroyAllWindows()
图像处理(5)膨胀操作
1234import numpy as npimport cv2 as cvimport matplotlib.pyplot as pltimport ipykernel
接之前的腐蚀原理。我们直接调用膨胀函数。
1234567891011#膨胀操作,我们可以腐蚀操作之后,为了恢复对图像的损失,用膨胀操作。img = cv.imread('def.jpg', cv.IMREAD_COLOR)kernel = np.ones((5, 5), np.uint8)erosion = cv.erode(img, kernel, iterations=1)#进行腐蚀操作plt.imshow(erosion)plt.axis("off")plt.show()dilation = cv.dilate(erosion, kernel, iterations=1)#注意,在服饰的基础上膨胀,恢复了原图像plt.imshow(dilation)plt.axis("off")plt.show()即可看到先腐蚀后膨胀的图像,恢复了图像的损失并且去噪了 ...
图像处理(8)礼帽和黑帽
1234import cv2 as cvimport numpy as npimport matplotlib.pyplot as pltimport ipykernel
12345678910111213#礼帽 = 原图像 - 开运算,即原图像减去我们加强过的图像,就剩下轮廓噪音#黑帽 = 闭运算 - 原始图像,噪音减去噪音,应该只留下了轮廓img = cv.imread("def.jpg", cv.IMREAD_COLOR)kernel = np.ones((5, 5), np.uint8)topHat = cv.morphologyEx(img, cv.MORPH_TOPHAT, kernel)blackHat = cv.morphologyEx(img, cv.MORPH_BLACKHAT, kernel)titles = ['Original', 'Top Hat', 'Black Hat']images = [img, topHat, blackHat]for i in range(3): ...
图像处理(9)sobel高级梯度计算
12345import cv2 as cvimport numpy as npimport matplotlib.pyplot as pltimport ipykernelfrom IPython.display import Latex
我们来看一下矩阵\begin{equation*} G_x(x) =\begin{bmatrix}-1 & 0 & +1 \-2 & 0 & +2 \-1 & 0 & +1\end{bmatrix}
A\end{equation*}下角标x表示横向梯度计算,矩阵右边为正表示右边的值减去左边的值,得到我们认为是梯度。
\begin{equation*} G_y(x) = \begin{bmatrix} +1 & +2 & -1 \ 0 & 0 & 0 \ -1 & -2 & -1\end{bmatrix}
A\end{equation*}y方向梯度同理,可以看出上下的像素变化。
12345img = cv.imread(&qu ...
Latex数学符号大全
Greek letters
\alpha A
\nu N
\beta B
\xi \Xi
\gamma \Gamma
o O
\delta \Delta
\pi \Pi
\epsilon \varepsilon E
\rho \varrho P
\zeta Z
\sigma \Sigma
\eta H
\tau T
\theta \vartheta \Theta
\upsilon \Upsilon
\iota I
\phi \varphi \Phi
\kappa K
\chi X
\lambda \Lambda
\psi \Psi
\mu M
\omega \Omega
Arrows
\leftarrow
\Leftarrow
\rightarrow
\Rightarrow
\leftrightarrow
\rightleftharpoons
\uparrow
\downarrow
\Uparrow
\Downarr ...
nginx文件存放目录
nginx的文件存放目录
配置文件存放目录:/etc/nginx
主配置文件:/etc/nginx/conf/nginx.conf
管理脚本:/usr/lib64/systemd/system/nginx.service
模块:/usr/lisb64/nginx/modules
应用程序:/usr/sbin/nginx
程序默认存放位置:/usr/share/nginx/html
日志默认存放位置:/var/log/nginx
配置文件目录为:/usr/local/nginx/conf/nginx.conf
lab-5-验证文件签名,检测文件完整性以及openssl部分使用
SHA256sum系列命令检测文件完整性1sha256sum file即可计算文件哈希
下面收到文件哈希之后来检验
1echo "sha256哈希 文件名" | sha256sum --check
如果不匹配则会显示mot match
如果哈希值存在于文件中,可以如下命令
1echo "$(cat 哈希值文件名) 待比较的文件" | sha256 --check
验证文件私钥签名我们使用gpg工具,安装之后在命令行
12gpg --verify filename.asc filenamegpg --verify filename.sig filename
两种格式均可,第一种文件之中就已经包含公钥,第二种我们要先导入公钥,用以下命令
1gpg --import public.asc
然后再验证。
下面是一个破解hash的好用的网站
https://hashes.com/en/decrypt/hash
openssl使用首先我们要注意,crt和pem后缀通常代表公钥,key和pem后缀通常代表私钥,这里也就是说pem后缀既可以是公钥也可以是私钥。
...



