import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
D:\Anaconda\AZWZ\lib\site-packages\numpy\_distributor_init.py:30: UserWarning: loaded more than 1 DLL from .libs:
D:\Anaconda\AZWZ\lib\site-packages\numpy\.libs\libopenblas.NOIJJG62EMASZI6NYURL6JBKM4EVBGM7.gfortran-win_amd64.dll
D:\Anaconda\AZWZ\lib\site-packages\numpy\.libs\libopenblas.WCDJNK7YVMPZQ2ME2ZZHJJRJ3JIKNDB7.gfortran-win_amd64.dll
warnings.warn("loaded more than 1 DLL from .libs:\n%s" %
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eAW9try4-1637754593304)(attachment:image.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1bfcbeefa3b74969ac328c6357d6edba~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
cat = cv.imread('img/cat.jpeg',0)
plt.imshow(cat,cmap=plt.cm.gray)
<matplotlib.image.AxesImage at 0x21b695f0a60>
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ymFk7Rs-1637754593306)(output_3_1.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c697fdcf7ac4463b91f49070f281a161~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
1.直方图
hist = cv.calcHist([cat],[0],None,[256],[0,256])
hist
array([[ 298.],
[ 235.],
[ 379.],
[ 484.],
[ 611.],
[ 541.],
[ 521.],
[ 569.],
[ 643.],
[ 593.],
[ 587.],
[ 583.],
[ 589.],
[ 608.],
[ 653.],
[ 723.],
[ 739.],
[ 745.],
[ 780.],
[ 767.],
[ 820.],
[ 878.],
[ 831.],
[ 887.],
[ 945.],
[ 945.],
[ 994.],
[ 998.],
[ 1071.],
[ 1085.],
[ 1070.],
[ 1180.],
[ 1163.],
[ 1276.],
[ 1239.],
[ 1314.],
[ 1368.],
[ 1329.],
[ 1427.],
[ 1474.],
[ 1392.],
[ 1436.],
[ 1473.],
[ 1523.],
[ 1482.],
[ 1516.],
[ 1483.],
[ 1594.],
[ 1629.],
[ 1537.],
[ 1533.],
[ 1628.],
[ 1603.],
[ 1613.],
[ 1569.],
[ 1684.],
[ 1737.],
[ 1752.],
[ 1816.],
[ 1864.],
[ 1818.],
[ 1956.],
[ 2005.],
[ 2138.],
[ 2207.],
[ 2323.],
[ 2284.],
[ 2362.],
[ 2568.],
[ 2578.],
[ 2629.],
[ 2670.],
[ 2765.],
[ 2662.],
[ 2671.],
[ 2596.],
[ 2628.],
[ 2661.],
[ 2686.],
[ 2694.],
[ 2654.],
[ 2520.],
[ 2595.],
[ 2755.],
[ 2732.],
[ 2807.],
[ 2698.],
[ 2696.],
[ 2736.],
[ 2755.],
[ 2800.],
[ 2746.],
[ 2908.],
[ 2929.],
[ 3000.],
[ 3147.],
[ 3285.],
[ 3312.],
[ 3406.],
[ 3522.],
[ 3741.],
[ 3952.],
[ 4256.],
[ 5150.],
[ 6437.],
[ 6974.],
[ 8969.],
[ 7342.],
[ 8121.],
[ 8383.],
[ 9304.],
[ 8677.],
[ 8311.],
[ 8104.],
[ 7843.],
[ 8341.],
[ 7319.],
[ 6924.],
[ 6066.],
[ 6012.],
[ 5867.],
[ 5655.],
[ 5062.],
[ 4995.],
[ 4880.],
[ 4907.],
[ 4910.],
[ 4974.],
[ 5113.],
[ 4994.],
[ 5158.],
[ 5132.],
[ 5358.],
[ 5783.],
[ 5855.],
[ 6271.],
[ 7423.],
[ 8547.],
[10928.],
[12840.],
[10364.],
[ 6580.],
[ 5052.],
[ 4022.],
[ 3587.],
[ 3641.],
[ 3547.],
[ 3517.],
[ 3372.],
[ 3278.],
[ 3217.],
[ 3202.],
[ 3183.],
[ 3047.],
[ 3012.],
[ 2868.],
[ 2933.],
[ 2839.],
[ 2776.],
[ 2842.],
[ 2654.],
[ 2586.],
[ 2538.],
[ 2398.],
[ 2506.],
[ 2403.],
[ 2315.],
[ 2265.],
[ 2144.],
[ 2189.],
[ 2239.],
[ 2192.],
[ 2150.],
[ 2240.],
[ 2564.],
[ 2564.],
[ 2677.],
[ 2436.],
[ 2766.],
[ 3023.],
[ 2942.],
[ 2927.],
[ 2796.],
[ 2804.],
[ 2841.],
[ 2870.],
[ 2796.],
[ 2721.],
[ 2691.],
[ 2624.],
[ 2511.],
[ 2547.],
[ 2513.],
[ 2581.],
[ 2471.],
[ 2402.],
[ 2359.],
[ 2456.],
[ 2317.],
[ 2304.],
[ 2363.],
[ 2089.],
[ 2142.],
[ 2042.],
[ 2040.],
[ 2015.],
[ 1755.],
[ 1816.],
[ 1871.],
[ 1790.],
[ 1717.],
[ 1757.],
[ 1734.],
[ 1958.],
[ 2019.],
[ 1960.],
[ 2063.],
[ 1917.],
[ 1921.],
[ 1846.],
[ 1827.],
[ 1583.],
[ 1459.],
[ 1362.],
[ 1292.],
[ 1325.],
[ 1276.],
[ 1161.],
[ 1118.],
[ 999.],
[ 973.],
[ 896.],
[ 917.],
[ 871.],
[ 819.],
[ 944.],
[ 930.],
[ 941.],
[ 986.],
[ 1114.],
[ 1140.],
[ 1199.],
[ 1098.],
[ 1040.],
[ 1147.],
[ 1293.],
[ 1347.],
[ 1659.],
[ 1366.],
[ 1370.],
[ 1007.],
[ 849.],
[ 765.],
[ 908.],
[ 1769.],
[ 3014.]], dtype=float32)
plt.plot(hist)
[<matplotlib.lines.Line2D at 0x21b6a817040>]
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5A8BJOVM-1637754593308)(output_6_1.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/afa03974596e4c35a500fa03b8a15aa4~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
2.掩膜的应用
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cWoCibje-1637754593310)(attachment:image.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/dcdb4f88d4de4c1b9d2d77f147eb3485~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
mask = np.zeros(cat.shape[:2],np.uint8)
mask[400:650,200:500] = 1
plt.imshow(mask,cmap=plt.cm.gray)
<matplotlib.image.AxesImage at 0x21b6a84f0d0>
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3S4pANBM-1637754593312)(output_10_1.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ea385f10f1f6451989c30d28236a5432~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
mask_cat = cv.bitwise_and(cat,cat,mask=mask)
plt.imshow(mask_cat,cmap=plt.cm.gray)
<matplotlib.image.AxesImage at 0x21b695816a0>
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dG5sNMNx-1637754593312)(output_11_1.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5996697810844a3299f64fc6bc152cb0~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
mask_hist = cv.calcHist([cat],[0],mask,[256],[0,256])
plt.plot(mask_hist)
[<matplotlib.lines.Line2D at 0x21b6a45fa60>]
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NzZSxHll-1637754593313)(output_13_1.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5ebec804d5ce40fbb572f30ace86fbea~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
3.直方图均衡化(提高对比度)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Q2UewYq-1637754593314)(attachment:image.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f87a2e933c5340bc884bf23387b6bfaa~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
dst = cv.equalizeHist(cat)
plt.figure(figsize=(20,20))
plt.subplot(1,2,1)
m1 = plt.imshow(cat,cmap=plt.cm.gray)
plt.title("原图")
plt.subplot(1,2,2)
m2 = plt.imshow(dst,cmap=plt.cm.gray)
plt.title("直方图均衡化后")
Text(0.5, 1.0, '直方图均衡化后')
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vkJiG6Rc-1637754593314)(output_17_1.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c89e734c7871449ba5432c67848ee666~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
4.自适应均衡化
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sclq734M-1637754593315)(attachment:image.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3352bd9838714c4e83faef659ec662ef~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
cl = cv.createCLAHE(2.0,(8,8))
res = cl.apply(cat)
plt.figure(figsize=(20,20))
plt.subplot(1,2,1)
m1 = plt.imshow(cat,cmap=plt.cm.gray)
plt.title("原图")
plt.subplot(1,2,2)
m2 = plt.imshow(res,cmap=plt.cm.gray)
plt.title("自适应均衡化后")
Text(0.5, 1.0, '自适应均衡化后')
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dXFu4fz3-1637754593316)(output_22_1.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1bd2f3b481cb45ac8695ac25119cd84a~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)
总结
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h7WceFS2-1637754593317)(attachment:image.png)]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/257743ea3f064c43a894f6e13c8b7ef8~tplv-k3u1fbpfcp-jj-mark:3024:0:0:0:q75.awebp)