Files
open-cv-experiment/实验五/test1.py
T
2024-11-16 18:44:35 +08:00

25 lines
1.4 KiB
Python

# 阈值分割;
# 1、确定分割的目标:首先需要明确要分割的目标是什么,例如分割目标物体和背景。
# 2、确定阈值:根据图像的特点和需求,选择适当的阈值。阈值可以是一个固定的值,也可以根据图像的统计特性进行自适应选择。
# 3、将图像转换为灰度图像:如果图像不是灰度图像,需要将其转换为灰度图像。这可以通过将彩色图像的RGB通道进行加权平均得到灰度值。
# 4、应用阈值:将选择的阈值应用于灰度图像,将图像中的像素分成两个类别:低于阈值的像素和高于阈值的像素。
# 5、生成二值图像:根据阈值的应用结果,将低于阈值的像素设置为一个固定的值(例如0),将高于阈值的像素设置为另一个固定的值(例如255),从而生成二值图像。
# 6、后处理(可选):根据实际需求,可以对生成的二值图像进行后处理操作,例如去除噪声、填充空洞等。
import numpy as np;
import cv2 as cv;
img=cv.imread('test1.png',cv.IMREAD_GRAYSCALE)
cv.imshow('img',img)
threshold_value = 200
max_value = 255
_,binary_img = cv.threshold(img,threshold_value,max_value,cv.THRESH_BINARY)
cv.imshow('binary_img',binary_img)
kernel = np.ones((3,3),np.uint8)
cleaned_img=cv.morphologyEx(binary_img,cv.MORPH_OPEN,kernel)
cv.imshow('cleaned_img',cleaned_img)
cv.waitKey(0)
cv.destroyAllWindows()