AKA如何将bmp图像转换为每个像素的强度值的2D矩阵?
答案 0 :(得分:1)
FGG,
一种方法是平均每个像素的强度(例如红色,绿色和蓝色)并对它们求平均值。
例如: 红色为128,蓝色为128,绿色为128,强度为128。 红色为0,蓝色为100,绿色为255,强度为118。
如果像素内置强度值,则可以对整个图像进行平均。一些图像具有包括亮度的元标签,也可以使用。上面的平均值是我过去在程序中使用的一种方式,它确定了图像的亮度。
编辑:我需要警告你,可能需要更复杂的算法,因为RGB值的整体平均值可能无法按照你想要的方式工作,因为平均值有限。例如,真正明亮的像素实际上可能会增加图像的亮度,但您可能无法在结果中看到它。类似地,取决于亮像素的图案,通过平均获得的亮度值可能不能准确地表示图像的真实亮度。
问题有点模糊,但我希望我的答案有所帮助!
Dan Chase
答案 1 :(得分:1)
有几种方法可以从YCbCr
坐标导出强度。
Y = 0.299*R + 0.587*G + 0.114*B
颜色模型中使用的最受欢迎的一种是应用线性变换,通常是max(R, G, B)
其他方法要么是平均值,要么是 //pagination function
public function pagination($per_page = 10, $page = 1, $url = '', $total){
$adjacents = "2";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<li class='details'>Page $page of $lastpage</li>";
if ($lastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li class='active' ><a >$counter</a></li>";
else
$pagination.= "<li><a href='{$url}$counter'>$counter</a></li>";
}
}
elseif($lastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<li class='active'><a >$counter</a></li>";
else
$pagination.= "<li><a href='{$url}$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>...</li>";
$pagination.= "<li><a href='{$url}$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}$lastpage'>$lastpage</a></li>";
}
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<li><a href='{$url}1'>1</a></li>";
$pagination.= "<li><a href='{$url}2'>2</a></li>";
$pagination.= "<li class='dot'>...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<li class='active'><a >$counter</a></li>";
else
$pagination.= "<li><a href='{$url}$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>..</li>";
$pagination.= "<li><a href='{$url}$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}$lastpage'>$lastpage</a></li>";
}
else
{
$pagination.= "<li><a href='{$url}1'>1</a></li>";
$pagination.= "<li><a href='{$url}2'>2</a></li>";
$pagination.= "<li class='dot'>..</li>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li class='active'><a >$counter</a></li>";
else
$pagination.= "<li><a href='{$url}$counter'>$counter</a></li>";
}
}
}
if ($page < $counter - 1){
$pagination.= "<li><a href='{$url}$next'>Next</a></li>";
// $pagination.= "<li><a href='{$url}$lastpage'>Last</a></li>";
}else{
//$pagination.= "<li><a class='current'>Next</a></li>";
// $pagination.= "<li><a class='current'>Last</a></li>";
}
}
return $pagination;
}
public function Recipe_list()
{
$jpag= new Customer_Recipes;
/*------------------------------pagination------------------------------*/
$page=1;
$limit=15;
$start=0;
if(isset($_GET['page']) && $_GET['page']!='')
{
$page=$_GET['page'];
}
$start=($page-1)*$limit;
$rows = $customermodel->count_recipes($Cat,$Sub,$uid);
if($rows>0)
$jb = $customermodel->get_recipes($Cat,$Sub,$uid,$start,$limit);
}
?>
<div class="row">
<div class="md-12"> <ul class="pagination">
<?php
echo $jpag->pagination($limit,$page,URL."Customer_Recipes/Recipe_list/?Cat=$Cat&Sub=$Sub&uid=$uid&page=",$rows);
?>
</ul>
</div>
</div>
。您可以阅读更多here。