使用SD卡上图片资源的ImageView

本文介绍了一个Android应用中从SD卡加载图片并进行缩放显示的方法。通过使用BitmapFactory从文件输入流中解码图片,然后利用Matrix类进行等比例缩放,最后将缩放后的Bitmap设置到ImageView中展示。
这个主要是实现Bitmap和Drawable之间的转换以及SD卡路径的获取问题:

package cn.com;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.os.Environment;
import android.widget.ImageView;

public class UserSdCardImage extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ImageView iv = (ImageView) findViewById(R.id.image);

showpic(iv);
}

private void showpic(ImageView iv) {
File sdcardDir = Environment.getExternalStorageDirectory();

String path = sdcardDir.getParent() + sdcardDir.getName();
System.out.println("________________________" + path);

File pic = new File(path + java.io.File.separator + "88.jpg");

FileInputStream is = null;
try {
is = new FileInputStream(pic);
Bitmap bm = BitmapFactory.decodeStream(is, null, null);

int w = bm.getWidth();
int h = bm.getHeight();

double s = 0.6;

float sw = 1, sh = 1;
sw = (float) (sw * s);
sh = (float) (sh * s);
Matrix mx = new Matrix();
mx.postScale(sw, sh);

Bitmap rp = Bitmap.createBitmap(bm, 0, 0, w, h, mx, true);
iv.setImageBitmap(rp);

} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
### 面部姿态估计中的角度定义 #### 定义 在面部姿态估计领域,三个主要的角度用于描述头部的姿态变化: - **翻滚(Roll)** 描述的是绕X轴的旋转情况。对于人脸而言,这意味着脸部沿垂直于屏幕的方向倾斜的程度。当右侧向上时,翻滚角为正值;左侧向上则为负值[^1]。 ```python import cv2 import numpy as np def draw_roll(image, angle): """绘制表示翻滚角的文字""" text = f'Roll: {angle:.0f} deg' position = (image.shape[1]-200, image.shape[0]-50) font = cv2.FONT_HERSHEY_SIMPLEX scale = 1 color = (255, 0, 0) thickness = 2 img_with_text = cv2.putText( image.copy(), text, position, font, scale, color, thickness) return img_with_text ``` - **俯仰(Pitch)** 表示绕Y轴发生的上下方向上的倾动程度。具体来说,就是头颅相对于水平面抬高或降低的状态。抬头动作会使俯仰角变为正值,而低头会使其成为负数[^3]。 ```python def draw_pitch(image, angle): """绘制表示俯仰角的文字""" text = f'Pitch: {angle:.0f} deg' position = (image.shape[1]-200, image.shape[0]-80) font = cv2.FONT_HERSHEY_SIMPLEX scale = 1 color = (0, 255, 0) thickness = 2 img_with_text = cv2.putText( image.copy(), text, position, font, scale, color, thickness) return img_with_text ``` - **偏航(Yaw)** 则反映了Z轴周围的左右转向状态。如果一个人脸朝向右边,则该角度取正值;反之面向左边即为负值。 ```python def draw_yaw(image, angle): """绘制表示偏航角的文字""" text = f'Yaw: {angle:.0f} deg' position = (image.shape[1]-200, image.shape[0]-110) font = cv2.FONT_HERSHEY_SIMPLEX scale = 1 color = (0, 0, 255) thickness = 2 img_with_text = cv2.putText( image.copy(), text, position, font, scale, color, thickness) return img_with_text ``` 这些函数可用于可视化不同类型的头部姿势变换,在图像处理软件中非常有用。 #### 应用场景 上述三种角度广泛应用于多个计算机视觉任务当中,比如但不限于: - 实现虚拟现实(VR)/增强现实(AR)体验过程中的人机交互; - 自动驾驶车辆内监控驾驶员注意力集中度; - 社交媒体滤镜效果创建更加逼真的人物表情模拟; - 辅助医疗诊断工具开发,帮助医生评估患者颈部活动范围等健康状况。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值