图像缩小和扩大

postScale:设置图片的缩放

package com.example.examples_05_09;

import android.R.integer;

import android.annotation.SuppressLint;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Matrix;

import android.graphics.drawable.BitmapDrawable;

import android.view.View;

@SuppressLint("DrawAllocation")

public class GameView extends View implements Runnable {

Bitmap QQBit;//位图

int QQBitWidth=0;//宽度

int QQBitHeight=0;//高度

//实例化图像对象

Matrix matrix=new Matrix();

float sc=1.0f;//设置缩放

public GameView(Context context) {

super(context);

// TODO Auto-generated constructor stub

//获取图片

QQBit=((BitmapDrawable)getResources().getDrawable(R.drawable.qq)).getBitmap();

//获取高

QQBitHeight=QQBit.getHeight();

//获取宽

QQBitWidth=QQBit.getWidth();

new Thread(this).start();

}

public void run() {

// TODO Auto-generated method stub

while (!Thread.currentThread().isInterrupted()) {

try {

Thread.sleep(100);

} catch (Exception e) {

// TODO: handle exception

Thread.currentThread().interrupt();

}

postInvalidate();

}

}

public void onDraw(Canvas canvas) {

super.onDraw(canvas);

matrix.reset();

//设置缩放大小

matrix.postScale(sc, sc);

//重新获得设置好的位图

Bitmap bitmap=Bitmap.createBitmap(QQBit, 0, 0, QQBitWidth, QQBitHeight,matrix,true);

//绘制

GameView.drawImage(canvas, bitmap, (320-QQBitWidth)/2, 20);

}

//绘制

public static void drawImage(Canvas canvas,Bitmap bitmap,int x,int y) {

canvas.drawBitmap(bitmap, x, y, null);

}

}

package com.example.examples_05_09;

import android.os.Bundle;

import android.app.Activity;

import android.view.KeyEvent;

import android.view.Menu;

public class MainActivity extends Activity {

GameView gameView;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

gameView=new GameView(this);

setContentView(gameView);

}

public boolean onKeyDown(int keyCode,KeyEvent event) {

if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT)

if(gameView.sc>0.3)

{

gameView.sc-=0.1;

}

else if (keyCode==KeyEvent.KEYCODE_DPAD_RIGHT) {

if(gameView.sc<1.5)

{

gameView.sc+=0.1;

}

}

return true;

}

}

图像缩小和扩大

时间: 2024-11-05 23:38:19

图像缩小和扩大的相关文章

OpenCV2:等间隔采样和局部均值的图像缩小

图像的缩小从物理意义上来说,就是将图像的每个像素的大小缩小相应的倍数.但是,改变像素的物理尺寸显然不是那么容易的,从数字图像处理的角度来看,图像的缩小实际就是通过减少像素个数来实现的.显而易见的,减少图像的像素会造成图像信息丢失.为了在缩小图像的同时,保持原图的概貌特征不丢失,从原图中选择的像素方法是非常重要的.本文主要介绍基于等间隔采样的图像缩小和基于局部均值的图像缩小以及其在OpenCV2的实现. 基于等间隔采样的图像缩小 这种图像缩小算法,通过对原图像像素进行均匀采样来保持所选择到的像素仍

【短道速滑一】OpenCV中cvResize函数使用双线性插值缩小图像到长宽大小一半时速度飞快(比最近邻还快)之异象解析和自我实现。

今天,一个朋友想使用我的SSE优化Demo里的双线性插值算法,他已经在项目里使用了OpenCV,因此,我就建议他直接使用OpenCV,朋友的程序非常注意效率和实时性(因为是处理视频),因此希望我能测试下我的速度和OpenCV相比到底那一个更有速度优势,恰好前一段时间也有朋友有这方面的需求,因此我就随意编写了一个测试程序,如下所示: IplImage *T = cvLoadImage("F:\\1.JPG"); IplImage *SrcImg = cvCreateImage(cvSiz

Opencv图像识别从零到精通(7)----图像平移、旋转、镜像

根据vc6.0c++的学习经验,如果可以很好的自己编程,让图像进行平移旋转这些操作,那么就好像能够清楚的看见图像的内部结构当然这里你怎么访问像素,这个可以自己选一种适合的,最多的是ptr指针,at也是挺多的.看着很简单的变换,可以对图像处理上手的更快,当然对于旋转可能就稍微i难了一点,不过opencv提供了resize(0,remap()等这样的函数,可以方便的让我们进行学习-特别是旋转的时候,有很多的变换,你可以任意旋转一个角度,也可能一直旋转,当然还可以保持图像大小不变的旋转和大小变换的旋转

图像特征提取

特征提取是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点.连续的曲线或者连续的区域. 特征的定义 至今为止特征没有万能和精确的定义.特征的精确定义往往由问题或者应用类型决定.特征是一个数字图像中“有趣”的部分,它是许多计算机图像分析算法的起点.因此一个算法是否成功往往由它使用和定义的特征决定.因此特征提取最重要的一个特性是“可重复性”:同一场景的不同图像所提取的特征应该是

看起来像它——图像搜索其实也不难 (图像相似,图像指纹,phash hash,图像搜索) 使用时候记得看这文章的评论

链接: http://pan.baidu.com/s/1o7ScyVo 密码: h8eb    这个文章的代码 另一个类似的代码  链接: http://pan.baidu.com/s/1hsFDCNy 密码: jxus http://blog.csdn.net/luoweifu/article/details/8220992                 使用时候记得看这文章的评论 看起来像它——图像搜索其实也不难 标签: pHash图像搜索图像识别图片搜索算法 2012-11-24 23:

图像相似度计算之哈希值方法

感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个"指纹"(fingerprint)字符串,然后比较不同图像的指纹.结果越接近,就说明图像越相似. 实现步骤: 1.      缩小尺寸:将图像缩小到8*8的尺寸,总共64个像素.这一步的作用是去除图像的细节,只保留结构/明暗等基本信息,摒弃不同尺寸/比例带来的图像差异: 2.      简化色彩:将缩小后的图像,转为64级灰度,即所有像素点总共只有64种颜色: 3.      计算平均值:计

Android 中的图像特效(Matrix)

以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,现在在Android中有一个Matrix类,它的中文意思就是矩阵.Matrix主要是用于图像的缩放.平移.旋转.扭曲等操作.图像处理,主要用到的是乘法. 下面是一个乘法的公式: 在Android里面,Matrix由9个float值构成,是一个3*3的矩阵.如下图 其含义如下: sinX和cosX,表示旋转角度的cos值和sin值(旋转角度是按顺时针方向计算的).translateX和translateY表示x和y的平移量.scale是缩放的

OpenCV进行图像相似度对比的几种办法

对计算图像相似度的方法,本文做了如下总结,主要有三种办法: 1.PSNR(Peak Signal to Noise Ratio)峰值信噪比,一种全参考的图像质量评价指标. 简介: http://www.cnblogs.com/vincent2012/archive/2012/10/13/2723152.html PSNR是最普遍和使用最为广泛的一种图像客观评价指标,然而它是基于对应像素点间的误差,即基于误差敏感的图像质量评价.由于并未考虑到人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,

图像相似度计算之哈希值方法OpenCV实现

http://blog.csdn.net/fengbingchun/article/details/42153261 图像相似度计算之哈希值方法OpenCV实现 2014-12-25 21:27 2959人阅读 评论(0) 收藏 举报  分类: OpenCV(72)  Image Processing(18)  版权声明:本文为博主原创文章,未经博主允许不得转载. 感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个“指纹”(fingerprint)字