图像直方图

图像直方图就是用来统计图像像素值分布的。

灰度图分布

读取灰度图

复制代码
phone = cv2.imread('phone.png', cv2.IMREAD_GRAYSCALE)
a = phone.ravel()
plt.hist(a, bins=256)
plt.show()

如何可以获得当前像素值分布

读取各通道的像素值分布

复制代码
img = cv2.imread('phone.png')
colors = ('b', 'g', 'r')
for i, col in enumerate(colors):
    histr = cv2.calcHist([img], [i], None, [256], [0, 256])
    plt.plot(histr, color=col)
plt.show()

加上掩膜

这个就是给一张图片(黑白图片),与我们目标图片相加,然后白色部分的图像就会得到保留,而黑色就变成了黑色。

复制代码
phone = cv2.imread('phone.png', cv2.IMREAD_GRAYSCALE)
cv2.imshow('phone',phone)
cv2.waitKey(0)
mask = np.zeros(phone.shape[:2],np.uint8)
mask[50:530,100:470] = 255
cv2.imshow('mask',mask)
cv2.waitKey(0)
Phone_mask = cv2.bitwise_and(phone,phone,mask=mask)
cv2.imshow('Phone_mask',Phone_mask)
cv2.waitKey(0)
Phone_hist_mask = cv2.calcHist([phone], [0], mask, [16], [0, 256])
plt.plot(Phone_hist_mask)
plt.show()

例如这样一个掩膜

与我们图像相加后

这里我们还可以把掩膜设置为一个轮廓,那么就可以读取轮廓了。

相关推荐
Monkey的自我迭代3 小时前
图像金字塔---图像上采样下采样
人工智能·opencv·计算机视觉
colus_SEU3 小时前
【卷积神经网络详解与实例】4——感受野
人工智能·深度学习·计算机视觉·cnn
掘金一周3 小时前
凌晨零点,一个TODO,差点把我们整个部门抬走 | 掘金一周 9.11
前端·人工智能·后端
Sirius Wu3 小时前
私有化部署Ragflow的预训练模型
人工智能·python·语言模型·火山引擎
Cyan_RA93 小时前
SpringMVC 执行流程分析 详解(图解SpringMVC执行流程)
java·人工智能·后端·spring·mvc·ssm·springmvc
工藤学编程3 小时前
零基础学AI大模型之读懂AI大模型
人工智能
h_k100863 小时前
如何使用 DeepSeek 帮助自己的工作?的技术文章大纲
人工智能
minhuan3 小时前
构建AI智能体:二十八、大语言模型BERT:原理、应用结合日常场景实践全面解析
人工智能·语言模型·自然语言处理·bert·ai大模型·rag
AndrewHZ4 小时前
【图像处理基石】图像处理中的边缘检测算法及应用场景
图像处理·算法·计算机视觉·cv·算子·边缘检测