记录:
一、求最大内切圆
图片应该是要一张二值图像,这个有程序可以将其变成(cv2)
用cv2来的findcontours()函数先找到图像中每一个连通域的轮廓;然后遍历轮廓,计算每一点到轮廓的距离(pointpolygontest()函数);再用minmaxloc()函数来找到最大值、最小值及其对应的坐标(最大值就是半径;最大值对应坐标就是圆心)。现在能够找到所有半径和圆心,但是再图像中画不出来,不知道是否是连通域太多(442个),接下来研究如何把每一个连通域分别拿出来,求它的内切圆,外接圆,内切正方形和外接正方形等。
遇到的问题:1.cv2的路径中不能含有中文;
2.这个在网上有一个求六边形内接圆的例子,但他的图中只有一个六边形,可以画出内接圆。
二、最小外接圆:cv2有直接的函数。
所有内切圆可以同时画出来,之前用了一句img_result = img.copy(),把这句去掉就可以画出所有图像,是因为必须用原图像的原因吗?没有搞懂。