图片批量去黑边

图片批量去黑边

import cv2

import os


def de_black(source_path):

    image = cv2.imread(source_path)

    b = cv2.threshold(image, 15, 255, cv2.THRESH_BINARY)  # 调整裁剪效果

    binary_image = b[1]  # 二值图--具有三通道

    binary_image = cv2.cvtColor(binary_image, cv2.COLOR_BGR2GRAY)

    # cv2.imwrite("D:\\emily_6500.jpg", binary_image)

    # print(binary_image.shape)       #改为单通道



    row = binary_image.shape[0]  # row指行,第几行,也就是height

    # print("高度x=",x)

    column = binary_image.shape[1]  # column指列,第几列,也就是width

    # print("宽度y=",y)

    edges_row = []

    edges_column = []

    for i in range(row):  # 逐个判断

        for j in range(column):

            if binary_image[i][j] == 255:  # 255表示白色

                # print("横坐标",i)

                # print("纵坐标",j)

                edges_row.append(i)

                edges_column.append(j)

    # print(edges_x
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以通过以下步骤批量去掉图片黑边: 1. 导入opencv库和os库 ```python import cv2 import os ``` 2. 定义函数,用于去掉图片黑边 ```python def remove_black_edge(image_path, save_path): # 读取图片 img = cv2.imread(image_path) # 将图片转为灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化处理 ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU) # 查找轮廓 contours, hierarchy = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) # 寻找最大轮廓 max_area = 0 contour_index = 0 for index in range(len(contours)): contour = contours[index] area = cv2.contourArea(contour) if area > max_area: max_area = area contour_index = index # 获取最大轮廓的矩形框 x, y, w, h = cv2.boundingRect(contours[contour_index]) # 裁剪图片 img_cropped = img[y:y+h, x:x+w] # 保存图片 cv2.imwrite(save_path, img_cropped) ``` 3. 循环遍历文件夹中的图片,调用函数去掉黑边并保存 ```python # 图片所在文件夹路径 folder_path = "path/to/folder" # 遍历文件夹中的所有图片 for filename in os.listdir(folder_path): if filename.endswith(".jpg") or filename.endswith(".png"): # 图片路径 image_path = os.path.join(folder_path, filename) # 去掉黑边后保存的路径 save_path = os.path.join(folder_path, "no_black_edge_" + filename) # 去掉黑边并保存 remove_black_edge(image_path, save_path) ``` 以上就是利用python和opencv批量去掉图片黑边的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值