python 把图片中的非黑色像素,增强清晰度
要增强一张图片中非黑色像素的清晰度,可以使用以下步骤:
- 加载图片并转换为灰度图像。
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- 对图像进行二值化处理,将非黑色像素转换为白色。
_, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
- 对二值化后的图像进行形态学操作,去除噪点和毛刺,同时增强图像的边缘。
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
closed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)
- 对形态学操作后的图像进行边缘检测,得到图像的轮廓。
contours, _ = cv2.findContours(closed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
- 在原始图像上画出图像的轮廓,得到增强后的图像。
cv2.drawContours(img, contours, -1, (0,255,0), 2)
cv2.imshow('enhanced image', img)
cv2.waitKey(0)
完整代码如下:
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
closed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)
contours, _ = cv2.findContours(closed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,255,0), 2)
cv2.imshow('enhanced image', img)
cv2.waitKey(0)
原文地址: https://www.cveoy.top/t/topic/xaE 著作权归作者所有。请勿转载和采集!