师兄又来发任务卡啦,还是一样matlab,对上次的图像做进一步处理。
用上个程序,统计所有正方形的边长,画出直方图,
根据这个概率分布,随机生成一个边长,再随机在图片中生成一个中心点的位置,画出一个正方形。
计算这个正方形和所有标记框的IOU。
按照这种方法,随机生成8个IOU小于20%的正方形图片,和2个IOU小于50%的图片。
IOU是两张图像的交并比。IOU=两张图片重合的面积/两张图片面积之和减重合面积
我把这个任务分为5个步骤:
1.把所有box画在图片上,记录每个box的四个角坐标
2.获得边长数组
3.随机生成一个正方形,随机中心点位置,以边长数据分布情况为概率生成边长。
4.计算生成区域和所有box的交并比
5.画出生成区域
第一步:
套用上个程序中,写好的算法,把所有标记框都画在图上,并把坐标记录在矩阵中。
onebox=[bb(1) bb(2) bb(3) bb(4)];
box=[box;onebox];
这里一行代表一个box,每行有四列,记录box位置信息。
第二步:
也是用上一个程序,
获得边长数组
第三步:
随机生成中心点的位置比较简单,用unidrnd(N)函数,生成1到N的随机整数
[irow, icol] = size(I);
centerX = unidrnd(icol/3);