标签: camera

BitmapFactory.decodeByteArray()返回NULL

我正在使用相机的previewCallback尝试抓取图像.这是我正在使用的代码

private Camera.PreviewCallback mPrevCallback = new Camera.PreviewCallback() 
{
        public void onPreviewFrame( byte[] data, Camera Cam ) {
                Log.d("CombineTestActivity", "Preview started");
                Log.d("CombineTestActivity", "Data length = " 
                        + data.length );
                currentprev = BitmapFactory.decodeByteArray( data, 0, 
                        data.length );

               if( currentprev == null )
                   Log.d("CombineTestActivity", "currentprev is null" );

                Log.d("CombineTestActivity", "Preview Finished" );

        }
};
Run Code Online (Sandbox Code Playgroud)

数据的长度总是与576000相同.

此外,我尝试更改相机的参数,以便图像以不同的格式返回.这就是我这样做时的样子.

mCamera = Camera.open();
camParam = mCamera.getParameters();
camParam.setPreviewFormat( ImageFormat.RGB_565 );
mCamera.setParameters( camParam );
    mCamera.setPreviewCallback( mPrevCallback );
Run Code Online (Sandbox Code Playgroud)

但是,当我更改预览格式并将其保留为默认值NV21时,BitmapFactory.decodeByteArray将返回null.我也尝试将预览格式更改为JPEG类型.我甚至在ddms中得到了一个调试语句,这就是我得到的

"D/skia(14391):--- SkImageDecoder :: Factory返回null"

java format camera android image

20
推荐指数
3
解决办法
3万
查看次数

我的Android相机Uri返回一个空值,但三星修复已经到位,有帮助吗?

所以我知道相机在三星设备上的问题.您需要在调用相机意图之前创建一个Uri,如下所示:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, m_username);
mImageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
Run Code Online (Sandbox Code Playgroud)

此示例为相机创建一个Uri来存储数据.我的应用程序在两个位置具有相机功能.两者都是相同的(直接复制粘贴),但在一个活动中,mImageUri对象在相机处理期间变为空,而在另一个活动中它不会.后者工作正常,但前者给出一个空值,这反过来阻止我保存图像,预览它等.我将提供下面的onResult代码:

case CAMERA_PIC_REQUEST :
if(resultCode == RESULT_OK) {
    if(intent != null) {
        //For non-Samsung devices
        Log.e("Intent value:", intent.toString());
        mImageUri = intent.getData();
    }

    mAvatar = BitmapStatic.createImage(mImageUri, this);
    Drawable draw = new BitmapDrawable(getResources(), mAvatar);
    m_photoButtonE.setImageDrawable(draw);
    m_imageChanged = true;
}
break;
Run Code Online (Sandbox Code Playgroud)

以上示例来自工作活动.以下是不起作用的活动:

//On pressing the "Take Photo" button:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, mUsername); …
Run Code Online (Sandbox Code Playgroud)

camera android android-camera

20
推荐指数
1
解决办法
2万
查看次数

Android:takePicture()没有声音

我正在使用takePicture()Camera课程中的方法.拍照,但它没有声音!我的客户想要Android制作的默认点击声.

我见过其他线程,似乎问题在于禁用声音,而不是相反!为什么我的应用程序没有发出咔嗒声?

camera android default

20
推荐指数
2
解决办法
9073
查看次数

OpenCV:solvePnP检测问题

我有使用OpenCV精确检测标记的问题.

我录制了这个问题的视频:http://youtu.be/IeSSW4MdyfU

如你所见,我正在检测的标记在某些摄像机角度稍微移动.我在网上看到这可能是相机校准问题,所以我会告诉你们我是如何校准相机的,也许你能告诉我我做错了什么?

在开始时我正在从各种图像中收集数据,并将校准角存储在这样的_imagePoints矢量中

std::vector<cv::Point2f> corners;
_imageSize = cvSize(image->size().width, image->size().height);

bool found = cv::findChessboardCorners(*image, _patternSize, corners);

if (found) {
    cv::Mat *gray_image = new cv::Mat(image->size().height, image->size().width, CV_8UC1);
    cv::cvtColor(*image, *gray_image, CV_RGB2GRAY);

    cv::cornerSubPix(*gray_image, corners, cvSize(11, 11), cvSize(-1, -1), cvTermCriteria(CV_TERMCRIT_EPS+ CV_TERMCRIT_ITER, 30, 0.1));

    cv::drawChessboardCorners(*image, _patternSize, corners, found);
}

_imagePoints->push_back(_corners);
Run Code Online (Sandbox Code Playgroud)

收集到足够的数据后,我用这段代码计算相机矩阵和系数:

std::vector< std::vector<cv::Point3f> > *objectPoints = new std::vector< std::vector< cv::Point3f> >();

for (unsigned long i = 0; i < _imagePoints->size(); i++) {
    std::vector<cv::Point2f> currentImagePoints = _imagePoints->at(i);
    std::vector<cv::Point3f> currentObjectPoints;

    for (int j = …
Run Code Online (Sandbox Code Playgroud)

camera opencv markers camera-calibration ios

20
推荐指数
2
解决办法
6467
查看次数

如何使用OpenGLES 2.0实时在libgdx中在背景上渲染Android的YUV-NV21相机图像?

与Android不同,我对GL/libgdx相对较新.我需要解决的任务,即将Android相机的YUV-NV21预览图像实时渲染到libgdx内部的屏幕背景是多方面的.以下是主要关注点:

  1. Android相机的预览图像仅保证在YUV-NV21空间中(在类似的YV12空间中,U和V通道不交错但分组).假设大多数现代设备提供隐式RGB转换是非常错误的,例如最新的Samsung Note 10.1 2014版本仅提供YUV格式.由于除非是RGB格式,否则无法在OpenGL中向屏幕绘制任何内容,因此必须以某种方式转换颜色空间.

  2. libgdx文档(集成libgdx和设备摄像头)中的示例使用Android表面视图,该视图低于使用GLES 1.1绘制图像的所有内容.自2014年3月初以来,由于过时而几乎所有设备都支持GLES 2.0,因此从libgdx中删除了OpenGLES 1.x支持.如果您使用GLES 2.0尝试相同的样本,则在图像上绘制的3D对象将是半透明的.由于背后的表面与GL无关,因此无法真正控制.禁用BLENDING/TRANSLUCENCY不起作用.因此,渲染此图像必须完全在GL中完成.

  3. 这必须是实时完成的,因此色彩空间转换必须非常快.使用Android位图的软件转换可能会太慢.

  4. 作为侧面功能,必须可以从Android代码访问摄像机图像,以执行除在屏幕上绘制之外的其他任务,例如通过JNI将其发送到本机图像处理器.

问题是,这项任务如何正确,尽可能快地完成?

shader camera android opengl-es-2.0 libgdx

20
推荐指数
2
解决办法
2万
查看次数

Ricoh Theta S - 在javascript中实时预览

我正在尝试使用HTTP请求创建一个与Ricoh Theta S相机对话的应用程序......它们符合Open Spherical Camera API Version 1.0 ... 这是他们的api参考

所以我试图实现他们说相机支持的实时预览 ......我在javascript中这样做,所以我尝试了每个可能的组合来获取他们说api调用返回的二进制数据...尝试了vanilla js,jquery,angular ......没有......这是请求的打印屏幕......虽然状态代码是200,但调试器显示为红色

在此输入图像描述

响应是空的...所以我的问题是......有没有办法可以通过HTTP在javascript中使用发送对象的POST请求实现Motion JPEG(10 fps)?

谢谢,雷尔斯

javascript ajax camera binary-data

20
推荐指数
1
解决办法
804
查看次数

Android前置摄像头

我需要一个功能来检查前置摄像头是否存在,如果存在,则显示预览.我找到了一些链接,但每个链接都谈到了一个特定的设备:

任何人都可以为此提供通用代码吗?或者也许是可以与所有设备一起使用的组合代码?

camera android

19
推荐指数
2
解决办法
3万
查看次数

默认相机活动未完成按OK按钮

我从我的活动中调用默认摄像头,然后处理onActivityResult.我的代码似乎在LG Ally上工作正常,在拍摄照片时没有确认.但是,当我在Nexus S上运行相同的应用程序时,它会在返回我的活动之前提示我"Ok","Retake"或"Cancel".虽然"取消"有效,但在没有保存图片的情况下返回我的活动,"确定"似乎没有任何效果,甚至没有返回我的活动.

我的代码如下:

private void captureImage() {

    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        File path = new File(Environment.getExternalStorageDirectory().getPath() + "/Images/" + (new UserContextAdapter(this)).getUser() + "/");
        path.mkdirs();
        File file = new File(path, "Image_Story_" + mRowId.toString() + ".jpg");

        newImageUri = Uri.fromFile(file);

        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, newImageUri);

        startActivityForResult(intent, CAPTURE_IMAGE);
    }

}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    switch (requestCode) {
    case CAPTURE_IMAGE:
        switch (resultCode ) {
        case 0:
            Log.i("CAPTURE", "Cancelled by User");
            break;
        case -1: …
Run Code Online (Sandbox Code Playgroud)

camera android nexus-s

19
推荐指数
1
解决办法
7369
查看次数

自定义相机android

我想camera preview在一个活动中使用.我想添加图像(表面视图上的透明框架).我尝试了以下代码,以便我可以轻松地自定义xml布局:

package com.demo;


import java.io.IOException;

import android.app.Activity;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;

public class CameraDemoActivity extends Activity implements SurfaceHolder.Callback{
    /** Called when the activity is first created. */
     Camera camera;
     SurfaceView surfaceView;
     SurfaceHolder surfaceHolder;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        getWindow().setFormat(PixelFormat.UNKNOWN);
        surfaceView = (SurfaceView)findViewById(R.id.surfaceview);
        surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(this);
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        camera = Camera.open();
        if(camera!=null){

            try {
             camera.setPreviewDisplay(surfaceHolder);
             camera.startPreview();
            } catch (IOException e) {
             Toast.makeText(this, (CharSequence) e, Toast.LENGTH_LONG).show();
            }

        } …
Run Code Online (Sandbox Code Playgroud)

camera android surfaceview android-camera

19
推荐指数
1
解决办法
5万
查看次数

iPhone - 如何创建自定义相册并以编程方式为相机胶卷中的照片指定自定义名称?

我正在开发一个iPhone照片应用程序,所以我需要在相机胶卷中创建一个名为"My Album"的单独相册,我需要在新创建的目录中保存带有自定义名称的UIImageView图像,例如"My Image.png" .

我怎样才能做到这一点?

iphone camera nsfilemanager ios

19
推荐指数
4
解决办法
2万
查看次数