Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 根据正方形大小对图像进行评分的算法_Algorithm_Rate_Scoring - Fatal编程技术网

Algorithm 根据正方形大小对图像进行评分的算法

Algorithm 根据正方形大小对图像进行评分的算法,algorithm,rate,scoring,Algorithm,Rate,Scoring,我试图创建一个算法,给定站点中的一组元素,该算法将返回一个更可能是描述产品的“一” 当然,这不是一个100%精确的算法,而且以后需要基于人的选择,但我正在尝试至少获得3张最可能的图像列表。以下是我目前所做的工作: 1-去掉小于50x50px的方块尺寸 2-计算页面中所有元素的平均平方大小 3-根据与平均面积的差异给每个人打分(面积越大,得分越高) 4-如果宽度大于(高度*5),分数=分数*0.5(我这样做是因为这可能是页面中的横幅) 这是我想要改变的,但我看不出有什么好办法可以改变。在步骤3中,

我试图创建一个算法,给定站点中的一组元素,该算法将返回一个更可能是描述产品的“一”

当然,这不是一个100%精确的算法,而且以后需要基于人的选择,但我正在尝试至少获得3张最可能的图像列表。以下是我目前所做的工作:

1-去掉小于50x50px的方块尺寸
2-计算页面中所有元素的平均平方大小
3-根据与平均面积的差异给每个人打分(面积越大,得分越高)
4-如果宽度大于(高度*5),分数=分数*0.5(我这样做是因为这可能是页面中的横幅)

这是我想要改变的,但我看不出有什么好办法可以改变。在步骤3中,我现在做的是给出以下分数:

score_of_image = average_square_size - square_size_image

我想有一个特定数量的点,将分享给所有的人,这取决于他们的大小。分享应反映一张图片与其他图片的大小。为了分享这些分数,什么是好的算法?

我认为您需要确定某些方面相对于其他方面有多重要,但您可以简单地计算图像的大小(宽度x高度),并将其作为分数的第一部分。我如何给这个评分是记录页面上最大图像的面积,并计算出其他图像的百分比。我不认为平均图像大小真的增加了什么,因为我认为最大的图像很可能是产品图像

然后计算平方度的单独分数,如下所示:-

if (height > width) {
    result = (width/height) * max_points_for_squareness;
} else {
    result = (height/width) * max_points_for_squareness;
}

所以在这两个方面之间,你可以得到两个百分比,可以用来分配你想要的总分(如果您愿意,您可以为正方形指定更多点,或者为图像大小指定更多点。

困惑!…您是在谈论一个简单的面积计算,还是在谈论图像的平方度?我想您是在尝试编写某种蜘蛛类型的算法,以从网站收集有关产品的信息。我会想到简单的面积计算应该给出“产品”图像的最佳指示。我不确定您为什么要将其转换为分数?什么是“元素”?它是位图图像?什么是“正方形大小”?位图图像的尺寸(宽度乘以高度)?您的观点(4)有一些语法错误,但对我来说似乎是错误的…一个好的正方形图像的宽度>高度*0.5,所以我不会惩罚它。如果宽度>高度*2,我可能会惩罚一个图像,这是非常不同的。我想在第三步中,你需要一个百分比的差异。所以使用类似
图像分数=正方形大小\图像/平均值\正方形\ s的东西ize
。因此,大于平均值的图像的分数将大于1.0。@DarrenCrabb我将此转换为分数,因为我想考虑其他方面,以确定产品图像是什么,而不仅仅是图像的“方形”。我想考虑的分数之一是“大”程度正方形大小(高度*宽度)的图像是。@j_random_hacker元素就是元素。正方形大小就是高度*宽度(像素)。我正在处罚宽度大得多的图像,因为这些图像很可能是我试图解析的网站中的横幅。方法和指导都很好。不过我有一个问题。你为什么要比较所有图像(百分比)使用最大的图像?为了获得百分比分数。因此,您需要计算出哪个图像最大,然后将每个较小的图像大小除以较大的图像大小,然后*100给出百分比。这样,您就始终有一个一致的范围(0-100)它使您能够在整个页面上分配精确的点数,使图像大小的分数与正方形的分数保持一致。不过,您不必使用100,如果您希望对图像大小产生偏差,可以使用更高的数字作为乘数。