数据预处理:图像去空白
图像去空白
介绍
图像去空白是指在图像处理中去除图像中的空白区域的过程。空白区域通常是指图像中的白色或其他颜色,其不包含有用的信息。去空白的目的是为了节省存储空间、提高图像处理速度、改善图像质量等。
去空白的方法有很多,其中一些常见的方法包括边缘检测、阈值处理、图像剪切和形态学处理。每种方法都有其特定的优势和局限性,因此通常需要结合使用多种方法,以便获得最佳效果。
举个例子,假设有一张图片,其中有一个大的白色区域,我们可以使用阈值处理的方法将其转换为黑白图像,然后使用形态学处理的方法去除其中的白色像素,最终得到一张只包含有用信息的图像。
方法
下面是几种常见的图像去空白方法:
- 边缘检测:通过检测图像中的边缘来去除空白区域。例如,使用 Canny 边缘检测算法或膨胀腐蚀算法。
- 阈值处理:通过设置图像中像素值的阈值来去除空白区域。例如,使用二值化算法。
- 图像剪切:通过计算图像中非空白像素的边界,并仅保留其中的图像。
- 形态学处理:通过使用形态学操作,例如腐蚀和膨胀,来去除空白区域。
这些方法的选择取决于图像的质量、内容和需求。通常,多种方法需要结合使用,以便获得最佳效果。
边缘检测
边缘检测是一种常见的图像去空白方法。该方法通过检测图像中的边缘,从而确定图像的有效区域。
步骤如下:
- 对图像进行预处理,将其转换为灰度图像。
- 使用滤波器对图像进行模糊处理,以减少图像中的噪声。
- 使用边缘检测算法,如Canny算法、Sobel算法等,在图像上检测边缘。
- 对检测到的边缘进行处理,以确定有效区域。
- 将有效区域从图像中剪切出来,得到一张去空白后的图像。
注意:边缘检测方法不一定适用于所有图像,因此需要对不同的图像进行试验,以确定最佳的边缘检测算法和参数。
import cv2
import numpy as np
# 读取图像
img = cv2.imread("input.jpg")
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用Canny边缘检测算法
edges = cv2.Canny(gray, 50, 150)
# 寻找轮廓
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 确定有效区域
x, y, w, h = cv2.boundingRect(contours[0])
# 将有效区域从图像中剪切出来
cropped = img[y:y h, x:x w]
# 保存去空白后的图像
cv2.imwrite("output.jpg", cropped)
阈值处理
import cv2
import numpy as np
# 读取图像
img = cv2.imread("input.jpg")
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 阈值处理
_, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY cv2.THRESH_OTSU)
# 寻找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 确定有效区域
x, y, w, h = cv2.boundingRect(contours[0])
# 将有效区域从图像中剪切出来
cropped = img[y:y h, x:x w]
# 保存去空白后的图像
cv2.imwrite("output.jpg", cropped)
形态学图像剪切
目前来说最有用
import numpy as np
import cv2
img = cv2.imread('data/3.jpg')
img = img[:-5,:-5]
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = 255*(gray < 128).astype(np.uint8)
gray = cv2.morphologyEx(gray, cv2.MORPH_OPEN, np.ones((2, 2), dtype=np.uint8))
coords = cv2.findNonZero(gray)
x, y, w, h = cv2.boundingRect(coords)
rect = img[y:y h, x:x w]
cv2.imwrite("Output.jpg", rect)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgcfjab
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01