图像分割算法python难不难

Python020

图像分割算法python难不难,第1张

是一种常用的图像处理方法,可分为传统方法和深度学习的方法。深度学习的方法比如:mask rcnn这类实例分割模型,效果比传统的图像分割方法要好的多,所以目前图像分割领域都是用深度学习来做的。但是深度学习也有它的缺点,模型大、推理速度慢、可解释性差、训练数据要求高等。本文在这里仅讨论传统的图像分割算法,可供学习和使用。

1、阈值分割

最简单的图像分割算法,只直接按照像素值进行分割,虽然简单,但是在一些像素差别较大的场景中表现不错,是一种简单而且稳定的算法

import os

import re

import sys

import time

import random

# add system headers here...

#导入cv模块

import cv2 as cv

#读取图像,支持 bmp、jpg、png、tiff 等常用格式

height = 0

length = 0

key = 0

picPath = "E:\\python3.4.0-amd\\project\\imageProcess\\tamamo.jpg"

if not os.path.exists(picPath):

    print("picture not exists! exit!")

    sys.exit()

srcImage = cv.imread(picPath)

if srcImage is None:

    print("read picture failed! exit!")

    sys.exit()

size = srcImage.shape

height = size[0]

length = size[1]

print("srcImage: height(%u) length(%u)"%(height,length))

#显示原图

#cv.imshow("srcImage",srcImage)

#创建窗口并显示图像

mid = int(length / 2)

leftImage = srcImage[0:height, 0:mid]

cv.namedWindow("leftImage",cv.WINDOW_NORMAL)

cv.resizeWindow("leftImage", mid, height)

cv.imshow("leftImage",leftImage)

rightIamge = srcImage[0:height, mid:length]

cv.namedWindow("rightIamge",cv.WINDOW_NORMAL)

cv.resizeWindow("rightIamge", mid, height)

cv.imshow("rightIamge",rightIamge)

cv.waitKey(0)

#释放窗口

cv.destroyAllWindows()