• 大小: 3KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: Python
  • 标签: AI  

资源简介

用python写的图片处理程序,用的库有OpenCV,PIL , numpy。可进行线圈部分提取以及切割线圈部分图片并保存

资源截图

代码片段和文件信息

# coding:utf-8
# author:HOJAY
# 矩阵运算 图像预处理
from PIL import Image ImageDraw
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv


path1 = “border_detection.bmp“

#打开图片并返回二值化图片
def openfile():
    img = Image.open(r‘F:/管浩杰/桌面/线圈/1.bmp‘ “r“)
    # pix = img.load()
    r g b = img.split()
    r = np.mat(r)
    g = np.mat(g)
    b = np.mat(b)
    c = (2 * r - g - b)/(2 * r + g + b + 0.000001)
    c = c > 0.3
    show_pic(r g b c)
    # pic.show()


#显示合并的图片
def show_pic(r g b c):
    r = np.multiply(r c)
    g = np.multiply(g c)
    b = np.multiply(b c)
    r = Image.fromarray(r)
    g = Image.fromarray(g)
    b = Image.fromarray(b)
    pic = Image.merge(‘RGB‘ [r g b])     #合并三通道

    pic.save(path1)


# 边缘处理
def border_detection():
    img = cv.imread(path1 0)
    b = np.ones((5 5) np.uint8)
    result_1 = cv.erode(img b)
    result_2 = cv.dilate(result_1 b)
    result_2 = cv.dilate(result_2 b)
    result_2 = cv.erode(result_2 b)
    result_2 = cv.dilate(result_2 b)
    result_2 = cv.dilate(result_2 b)

    # cv.namedWindow(“result_1“ 0)
    # cv.namedWindow(“result_2“ 0)
    # cv.imshow(“result_1“ result_1)
    # cv.imshow(“result_2“ result_2)
    # cv.waitKey(0)
    # cv.destroyAllWindow

评论

共有 条评论