图像像素

从像素之间谈起:像素游戏的画面增强

[亡魂溺海] 提交于 2019-12-27 01:18:36
转自:http://fushigi-hako.site/2017/07/02/from_pixel_to_screen_1/ 无所不在的像素画 分类 随着分辨率的普遍提高,我们已经告别了依赖于简陋像素来表现游戏画面的年代。但还是有不少人像我一样沉迷于像素美术和游戏。如今到处可以都可以看到的各式像素作品,虽然大多被直接称呼为像素画,但实际上已经分化为很多分支,简单的将其归类为像素作品未免太含糊。在开始正文之前我先将他们粗粗的分个类。一些比较常见的代表如: 大颗粒像素,此类像素作品一般细节较少,人物符号化或者抽象化。同时还可能出现非像素元素,如光晕,渐变   2.粒度较小的像素画,主要还是色块化,边缘并没有强化。   3.强化边缘和高光,细节丰富,但是普遍尺寸较小。 另外,在一些UI图标的绘制过程中,由于图标较小,也同样采用像素点绘的方式。因为它平时也不会被称为像素画,所以这里也不讨论。 其中第3种是我在本文中将着重讨论的。 这类像素图可能和平时所提到的像素图差的最远,因为它并不是为了做出像素化效果而诞生的。相反它是游戏机在分辨率和色板支持加强之后的产物(光是从GB到GBC,支持的色深就从2位变成了15位)。在这方面,任天堂算是是做到了极致(也可能因为任天堂的主机的屏幕天生小的缘故)这类像素画在抗锯齿(伪),光照,色彩的调和的方面很有特点(这篇文章中不细说) 再现像素画 就GBA而言

积分图(一) - 原理及应用

我的未来我决定 提交于 2019-12-27 01:18:00
积分图原理 第一个提出 Haar 特征快速计算方法的是 CVPR2001上 的那篇经典论文 [《Rapid object detection using a boosted cascade of simple features》] ( http://www.cs.utexas.edu/~grauman/courses/spring2007/395T/papers/viola_cvpr2001.pdf ), Viola 提出了一种利用积分图(integral image)快速计算 Haar 特征的方法, 这个方法使得图像的局部矩形求和运算的复杂度从 O(MN) 下降到了 O(4) 。 Haar 特征的计算需要重复计算目标区域的像素值,使用积分图能大大减少计算量,达到实时计算 Haar 特征的目的。简单来说,就是先构造一张“积分图”(integral image),也叫 Summed Area Table,之后任何一个 Haar 矩形特征都可以通过查表的方法(Look Up Table)和有限次简单运算得到,大大减少了运算次数。所以但凡需要重复计算目标区域内像素值和的场合,积分图都能派上用场。下面开始介绍积分图原理,并给出其的几个应用。 1、积分图原理   图像是由一系列的离散像素点组成, 因此图像的积分其实就是求和. 图像积分图中每个点的值是原图像中该点左上角的所有像素值之和.

积分图及其应用

谁说胖子不能爱 提交于 2019-12-27 01:17:34
   Paul Viola提出一种利用积分图快速计算Haar特征的方法(《Rapid object detection using a boosted cascade of simple features》)。Haar特征是什么就不多做介绍,总之Haar特征的计算需要重复计算目标区域的像素值,使用积分图能大大减少计算量,达到实时计算Haar特征的目的。简单来说,就是先构造一张“积分图”(integral image),也叫Summed Area Table,之后任何一个Haar矩形特征都可以通过查表的方法(Look Up Table)和有限次简单运算得到,大大减少了运算次数。所以但凡需要重复计算目标区域内像素值和的场合,积分图都能派上用场。下面开始介绍积分图原理,并给出其的几个应用。 1、积分图原理    将矩形表示为:   其中,x,y表示坐标,w,h表示宽、高,a表示角度。   积分图像中,每个点存储的是其左上方所有像素之和:    其中I(x,y)表示图像(x,y)位置的像素值。积分图像可以采用增量的方式计算: 初始边界:SAT(-1,y)=SAT(x,-1)=SAT(-1,-1)=0 为了更好地说明这个等式的缘由,下面我用几幅图来说明: 图1.坐标(x,y)处在原图像中示例 图2.坐标(x,y-1)处的积分图像SAT(x,y-1)示例 图3.坐标(x-1,y

opencv基础入门——模糊操作

非 Y 不嫁゛ 提交于 2019-12-26 15:38:23
参考: python+opencv3.3视频教学 基础入门-bilibili OpenCV图像处理—模糊原理_不安分的少年-CSDN博客 高斯模糊_百度百科 一、模糊原理 使用模糊操作的原因之一就是为了给图像预处理时候 降低噪声 , 把噪声与周围的数值平均一下就可以平滑噪声。 模糊基于数学的 卷积计算 。 卷积:通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数 f f f 与 g g g 经过翻转和平移的重叠部分的面积。 g ( i , j ) = ∑ l , k f ( l + k , j + l ) h ( k , l ) g(i,j)=\sum _{l,k}f(l+k,j+l)h(k,l) g ( i , j ) = l , k ∑ ​ f ( l + k , j + l ) h ( k , l ) 其中: f ( ) f() f ( ) 表示一副图像 i , j i,j i , j 表示图像的行和列 h ( k , l ) h(k,l) h ( k , l ) 表示 卷积算子 (卷积核)(也可以叫掩膜) k , l k,l k , l 又可以叫窗口大小(掩膜的大小,比如3*3) g ( ) g() g ( ) 表示输出的像素值 不同的卷积核得到不同的卷积效果 。 通常这些卷积算子计算都是线性操作,所以又叫 线性滤波 。 二、基本模糊操作 1.均值模糊

0074 二倍图:物理像素&物理像素比、背景缩放background-size

假如想象 提交于 2019-12-26 15:37:57
3.1物理像素&物理像素比 物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好了,比如苹果6 是 750* 1334。 我们开发时候的1px 不是一定等于1个物理像素的。 一个px的能显示的物理像素点的个数,称为 物理像素比 或 屏幕像素比 。 如果把1张100*100的图片放到手机里面会按照物理像素比给我们缩放。 lRetina(视网膜屏幕)是一种显示技术,可以将把更多的物理像素点压缩至一块屏幕里,从而达到更高的分辨率,并提高屏幕显示的细腻程度。 对于一张 50px * 50px 的图片,在手机或 Retina 屏中打开,按照刚才的物理像素比会放大倍数,这样会造成图片模糊。 在标准的viewport设置中,使用倍图来提高图片质量,解决在高清设备中的模糊问题。 通常使用二倍图, 因为iPhone 6 的影响背景图片 注意缩放问题。 ​ /* 1. 物理像素 就是我们说的分辨率 iPhone8的物理像素是 750 */ ​ /* 2. 在 iPhone8里面, 1px 开发像素 = 2个物理像素 */ demo:二倍图做法 <!DOCTYPE html> < html lang = " en " > < head > < meta charset = " UTF-8 " > < meta name = " viewport " content = "

图像切割之(一)概述

前提是你 提交于 2019-12-26 09:42:36
图像切割之(一)概述 zouxy09@qq.com http://blog.csdn.net/zouxy09 所谓图像切割指的是依据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。我们先对眼下基本的图像切割方法做个概述,后面再对个别方法做具体的了解和学习。 1 、基于阈值的切割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每一个像素的灰度值与阈值相比較,最后将像素依据比較结果分到合适的类别中。因此,该类方法最为关键的一步就是依照某个准则函数来求解最佳灰度阈值。 2 、基于边缘的切割方法 所谓边缘是指图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性的突变。通常情况下,基于边缘的切割方法指的是基于灰度值的边缘检測,它是建立在边缘灰度值会呈现出阶跃型或屋顶型变化这一观測基础上的方法。 阶跃型边缘两边像素点的灰度值存在着明显的差异,而屋顶型边缘则位于灰度值上升或下降的转折处。正是基于这一特性,能够使用微分算子进行边缘检測,即使用一阶导数的极值与二阶导数的过零点来确定边缘,详细实现时能够使用图像与模板进行卷积来完毕。 3 、基于区域的切割方法 此类方法是将图像依照相似性准则分成不同的区域,主要包含种子区域生长法

matlab函数bwareaopen的详解

眉间皱痕 提交于 2019-12-26 09:11:16
matlab函数_连通区域 1、 matlab函数bwareaopen──删除小面积对象 格式:BW2 = bwareaopen(BW,P,conn) 作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。 算法: (1)Determine the connected components. L = bwlabeln(BW, conn); (2)Compute the area of each component. S = regionprops(L, 'Area'); (3)Remove small objects. bw2 = ismember(L, find([S.Area] >= P)); 2、matlab函数bwarea──计算对象面积 格式:total = bwarea(BW) 作用:估计二值图像中对象的面积。 注:该面积和二值图像中对象的像素数目不一定相等。 3、matlab函数imclearborder──边界对象抑制 格式:IM2 = imclearborder(IM,conn) 作用:抑制和图像边界相连的亮对象。若IM是二值图,imclearborder将删除和图像边界相连的对象。默认情况conn=8。 注:For grayscale images, imclearborder tends to reduce the overall intensity

彻底理解数字图像处理中的卷积-以Sobel算子为例

回眸只為那壹抹淺笑 提交于 2019-12-26 09:04:55
彻底理解数字图像处理中的卷积-以Sobel算子为例 作者:FreeBlues 修订记录 - 2016.08.04 初稿完成 概述 卷积 在信号处理领域有极其广泛的应用, 也有严格的物理和数学定义. 本文只讨论卷积在数字图像处理中的应用. 在数字图像处理中, 有一种基本的处理方法: 线性滤波 . 待处理的平面数字图像可被看做一个大矩阵, 图像的每个像素对应着矩阵的每个元素, 假设我们平面的分辨率是 1024*768 , 那么对应的大矩阵的 行数 = 1024 , 列数 = 768 . 用于滤波的是一个滤波器小矩阵(也叫 卷积核 ), 滤波器小矩阵一般是个方阵, 也就是 行数 和 列数 相同, 比如常见的用于边缘检测的 Sobel 算子 就是两个 3*3 的小矩阵. 进行滤波就是对于大矩阵中的每个像素, 计算它周围像素和滤波器矩阵对应位置元素的乘积, 然后把结果相加到一起, 最终得到的值就作为该像素的新值, 这样就完成了一次滤波. 上面的处理过程可以参考这个示意图: 图像卷积计算示意图: 对图像大矩阵和滤波小矩阵对应位置元素相乘再求和的操作就叫 卷积 ( Convolution )或 协相关 ( Correlation ). 协相关 ( Correlation )和 卷积 ( Convolution )很类似, 两者唯一的差别就是 卷积 在计算前需要翻转 卷积核 , 而 协相关

图像滤波之高斯滤波介绍

孤街浪徒 提交于 2019-12-26 09:02:30
1 高斯滤波简介   了解高斯滤波之前,我们首先熟悉一下高斯噪声。高斯噪声是指它的 概率密度函数 服从 高斯分布 (即 正态分布 )的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的 功率谱密度 又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为 常数 ,是指先后信号在时间上的相关性, 高斯白噪声 包括 热噪声 和 散粒噪声 。   高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器。高斯平滑滤波器对于抑制服从正态分布的噪声非常有效。一维零均值高斯函数为:                          g(x)=exp( -x^2/(2 sigma^2)   其中,高斯分布参数Sigma决定了高斯函数的宽度。对于图像处理来说,常用二维零均值离散高斯函数作平滑滤波器,高斯函数的图形:                    2 高斯滤波函数   对于图像来说,高斯滤波器是利用高斯核的一个2维的卷积算子,用于图像模糊化(去除细节和噪声)。   1) 高斯分布   一维高斯分布:          二维高斯分布:      2) 高斯核   理论上,高斯分布在所有定义域上都有非负值,这就需要一个无限大的卷积核。实际上,仅需要取均值周围3倍标准差内的值,以外部份直接去掉即可。 如下图为一个标准差为1.0的整数值高斯核。                

数字图像处理------中值滤波

拟墨画扇 提交于 2019-12-26 08:53:28
一 中值滤波概念 中值滤波算法以某像素的领域图像区域中的像素值的排序为基础,将像素领域内灰度的中值代替该像素的值[1]; 如:以3*3的领域为例求中值滤波中像素5的值 图1 1)int pixel[9]中存储像素1,像素2...像素9的值; 2)对数组pixel[9]进行排序操作; 3)像素5的值即为数组pixel[9]的中值pixel[4]。 中值滤波对处理椒盐噪声非常有效。 二 中值滤波代码实现 项目工程: https://github.com/ranjiewwen/Everyday_Practice/tree/master/MedianFilter/MedianFilter/MedianFilter //中值滤波:本算法采用3*3的领域范围 void MyImage::MedianFilterOper() { //0. 准备:获取图片的宽,高和像素信息, int const num = 3 * 3; unsigned char pixel[num] = { 0 }; //保存领域的像素值 int width = m_bmpInfo.biWidth; int height = m_bmpInfo.biHeight; int widthbyte = (width * m_bmpInfo.biBitCount / 8 + 3) / 4 * 4; //保证为4的倍数 //相对于中心点