以深搜举例:先转换成0/1矩阵(1表示农田0表示杂草)然后遍历矩阵当遇到值为1的坐标进行dfs,ans+1 遍历结束返回ans
部分python代码:
m = len(arr)
n = len(arr[0])
ans = 0
def dfs(i,j):
arr[i][j] = 0
for x,y in [[i+1,j],[i-1,j],[i,j+1],[i,j-1]]:
if not(0<=x<m and 0<=y<n) or arr[x][y] ==0:
continue
dfs(x,y)
for i in range(m):
for j in range(n):
if arr[i][j] == 1:
dfs(i,j)
ans += 1
return ans
要学习以下计算机视觉的知识才能算入门:1.图像生成.(包括成像原理,相机内参数外参数及光学畸变矫正方法,光照,阴影和颜色空间)
2.早期视觉.(包括低通滤波的平滑,中值滤波,高通滤波的图像增强,图像变换域,频域下的滤波,卷积,高斯和拉普拉斯金字塔,图像纹理)
3.图像数学形态学处理.(包括腐蚀,膨胀,开运算,闭运算,顶帽运算,骨架提取,击中击不中变换)
4.底层视觉.(包括Fast,SITF,SURF,ORB等特征点,LATCH等描述符,匹配,单应变换,RANSAC,立体视觉,运动中恢复结构SFM)
5..中层视觉.(包括图像分割,分水岭,区域生长,聚类,拟合,霍夫,光流,图像直方图,相似度,CamShift,卡尔曼滤波,粒子滤波)
6.高层视觉.(包括配准,轮廓,凸包,深度图,图像分类,图像检索)
7.顶层视觉.(包括物体识别,人类检测识别,人体跟踪,行为识别等)
另外,还要掌握一定的C++,python等语言的编程技术和OpenCV等函数库的使用