原理
图像的分离与合并
分裂的做法
逐级四等分,知道要分裂的区域被分为单个像素为止
合并的做法
把特性相同的相邻区域合并为一个区域
分裂合并的顺序
- 进行一次分裂
- 考察所有相邻区域是否可以合并,若可以,则将其一一合并‘
- 重复前两步,直到分裂合并都不能在进行为止
注:合并时一般先考虑同一父节点下的四个区域,之后再扩展到其他父节点下同层次的区域。
实例
题目
利用图像分割原理,实现给定图像的区域分割和计数!
把图片中的米粒数出来。
具体实现
- 首先是将原图导入并输出
import cv2
import numpy as np
import matplotlib.pyplot as plt
#下面这两句可不加,只是为了显示中文
def zh_ch(string):
return string.encode("gbk").decode('UTF-8', errors='ignore')
print("startn") #正式开始
img = cv2.imread("rice.png")#导入图片
cv2.namedWindow(zh_ch('原图'),cv2.WINDOW_FREERATIO)#窗口大小自适应比例:cv2.WINDOW_FREERATIO
cv2.imshow(zh_ch('原图'),img) # 输出原图
#如果不显示中文,可以按正常步骤
#cv2.namedWindow("imagshow",2)
#cv2.imshow('iomagshow',img)
- 将原图转换为灰度图