Android :: AR Get Rotation Matrix / Camera Overlay?
Feb 23, 2010
I spend two weeks now trying to get this working with no success. Here is what I want to do: I have several geo points around the user and his phone. I want to display this point overlaying them on the input from the camera (kind of standard AR (Augmented Reality) app). Part of my requirements are that the user can use the phone in either landscape or portrait mode.My plan was like this.
1. Register for Sensor.TYPE_ACCELEROMETER, Sensor.TYPE_MAGNETIC_FIELD 2. Pass the result to Sensor Manager.getRotationMatrix(), getting back the R matrix that should be telling me how to translate points from the Phone coordinate system (defined here: http://developer.android.com/reference/android/hardware/SensorEvent.html) to World coordinate system (x -> East, y -> North, z -> Sky) 3. I want to translate points from World to Phone so I take the inverse of R (I'm using Matrix.invertM()) to get R_In 4. Using the GPS I translate the geo points I want to display on the camera to points in the World coordinate system and then I run them through the R_In matrix to get their coordinates in the Phone system. 5. Draw the points in the screen only if the have (phone coordinates) z < 0 and x and y such that they are visible. This is my grand plan... however I have problems quite early (2). I do get the R matrix back and it looks good when I align the phone to the world coordinate system ( I get the identity matrix ). However when I try to translate an imaginary point from the Phone coordinate system say (0, 1, 0) to the World coordinate system I don't get the numbers I expect.
View 2 Replies
Jan 30, 2009
Does someone know how I can overlay an image over the camera preview?
View 6 Replies
View Related
Aug 10, 2010
I'm passing a bitmap through a bundle to an activity which I called cameraView on which the user has access to the camera of the device. I'd like to overlay that bitmap with transparency using the camera as the background. Is it possible? to put the bitmap in front of the camera? And how can I change the transparency level? Here is my code: This is the camview.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<SurfaceView android:id="@+id/surface_camera" android:layout_width="fill_parent"
android:layout_height="10dip" android:layout_weight="1"> </SurfaceView> </RelativeLayout>
And this is the java:
public class cameraView extends Activity implements SurfaceHolder.Callback{
SurfaceView mSurfaceView; SurfaceHolder mSurfaceHolder;
Camera mCamera; boolean mPreviewRunning=false; private Context mContext = this;
public void onCreate(Bundle icicle) { super.onCreate(icicle);
setContentView(R.layout.camview); Bundle f = getIntent().getExtras();
picture = f.getParcelable("bitmap"); mSurfaceView = (SurfaceView) findViewById(R.id.surface_camera); mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this); mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
} @Override // Create the Surface and Open the Camera
public void surfaceCreated(SurfaceHolder holder) { mCamera = Camera.open();
} @Override // Reacts for camera changes public void surfaceChanged(SurfaceHolder holder,
int format, int w,int h) { if (mPreviewRunning) { mCamera.stopPreview();
} Camera.Parameters p = mCamera.getParameters(); p.setPreviewSize(w, h);
mCamera.setParameters(p); try { mCamera.setPreviewDisplay(holder);
} catch (IOException e) { e.printStackTrace();
} mCamera.startPreview(); mPreviewRunning = true;
} @Override // When the camera is closed
public void surfaceDestroyed(SurfaceHolder holder) { mCamera.stopPreview();
mPreviewRunning = false; mCamera.release(); }
// When the picure is taken. This method gives the byte[] of the picture
Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] imageData, Camera c) {
} };
View 3 Replies
View Related
Oct 21, 2009
My application while compiled in 1.5 works fine. I had some memory issues w/ 1.6 due to image size, which was strange b/c the image size increased when taking photos by taking a picture w/ surfaceholder/imagecapture callback. I seem to have fixed re-displaying those images by resizing them using a bitmapfactory matrix. But my camera is now rotating everything 90 degrees. It appears that my Override of surfaceChanged does nothing, which is where I was setting rotation at 90 (I can't remember why, it was 10 months ago!). I have tried at rotating the camera parameters paramters at 90 degrees, 0 degrees.
View 2 Replies
View Related
Jul 12, 2010
I'm a bit new to Android but after searching on the Market, the web and this forum, I can't seem to find anything like this but I feel like it has to exist (or hopefully will soon). I'm looking for a camera application that can place the current compass direction on the image (and stamp the saved image with the direction). The tilt of the phone would be cool to have, too, but just the compass would be great. I did find an application that shows the compass direction on over top of a feed from the camera ("Reality + Compass" by Udell Enterprises).
I want something just like this, but with the ability to save the image. In case you're wondering, I'd like to use this for bettering the storm spotting community. A problem when people send in images of clouds/storms/tornadoes/etc is that you never know (1) where the picture was taken and (2) in what direction. Ideally GPS location could be added, too, but for now I just want the compass. (Other image services can handle the location part fine, like Twitter for Android/Twitpic.)
(I'm on the HTC Aria, but I can sideload apps now thanks to the new version of HTC Sync.)
View 5 Replies
View Related
Dec 27, 2009
How do I write code which layouts UI elements (Buttons, etc) over camera preview on Android ?
View 2 Replies
View Related
May 29, 2010
I have a simple program that draws the preview of the Camera into a SurfaceView. What I'm trying to do is using the onPreviewFrame method, which is invoked each time a new frame is drawn into the SurfaceView, in order to execute the invalidate method which is supposed to invoke the onDraw method. In fact, the onDraw method is being invoked, but nothing there is being printed (I guess the camera preview is overwriting the text I'm trying to draw).
This is a simplify version of the SurfaceView subclass I have:
public class Superficie extends SurfaceView implements SurfaceHolder.Callback {
SurfaceHolder mHolder; public Camera camera; Superficie(Context context) { super(context);
mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
} public void surfaceCreated(final SurfaceHolder holder) { camera = Camera.open();
try { camera.setPreviewDisplay(holder); camera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera arg1) { invalidar();
} } ); } catch (IOException e) {} } public void invalidar(){ invalidate(); }
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
Camera.Parameters parameters = camera.getParameters(); parameters.setPreviewSize(w, h);
camera.setParameters(parameters); camera.startPreview(); }
@Override public void draw(Canvas canvas) { super.draw(canvas);
// nothing gets drawn :( Paint p = new Paint(Color.RED);
canvas.drawText("PREVIEW", canvas.getWidth() / 2, canvas.getHeight() / 2, p);
} }
View 1 Replies
View Related
Aug 23, 2010
I have a SurfaceView that is being used to draw custom animations and I would like to overlay them onto a live-feed from the phone's camera. Currently, the SurfaceView that contains the animations has a white- background, but if I were to overlay them onto the phone's camera feed, they would have to be transparent. The camera and animation drawing cannot be done on the same SurfaceView. Is it possible to make a SurfaceView transparent? What is the best course to pursue the use of multiple views? My end goal is to essentially overlay the contents of another SurfaceView onto the Camera SurfaceView.
View 2 Replies
View Related
Aug 23, 2010
I have a SurfaceView that is being used to draw images, and I would like to overlay them onto a live-feed from the phone's camera. Currently, the SurfaceView that contains the images have a white-background, but if I were to overlay them onto the phone's camera feed, they would have to be transparent. The camera and animation drawing cannot be done on the same SurfaceView. What is the best course to pursue the use of multiple views that involve managing the camera and drawing images? Is it possible to make a SurfaceView transparent?
View 4 Replies
View Related
Nov 15, 2012
I've got a Samsung Galaxy III and have problems trying to view images in my gallery using the auto-rotate screen option and rather then having to manuallly press the rotate screen "icon" which does gets annoying. I just want to tilt my phone so the images can automatically change to portrait or landscape on its own depending what angle the phone tilts. I've ensure the auto-rotate screen is checked from Settings under Display and even tried unchecking it and checking it again as well as switching my phone on/off.
NOTE: That the auto-rotate screen option does work fine for me with everything else like watching videos, texting, internet browsing, music and even viewing the overall images in the gallery but when going in and viewing the pictures individually from either the Gallery or the Camera. All I've got is a rotate screen "icon" to press on manually each time I'd like the picture to be portrait and if I want landscape I have to press on the screen rotate icon again. I noticed the auto-rotate screen option doesn't work on my Home Screen and Lock Screen as well but that isn't the main issue.
I've been reading around and tried pulling out my battery on "Odin" mode, wait 30sec-1min then turn my phone on again and that didn't work. I've also did the same procedure and ensure I unchecked the auto-rotate screen option and checked it again after I turned on the phone. I tried the Gyroscope Caliberation option and calibrated it and that didn't work either. My sister has the same phone as me with the same version installed but she doesn't have this problem and I'm wondering if it's something to do with how my phone software's set up?
View 2 Replies
View Related
Aug 18, 2010
I like tu use the MapActivity to display some pins. When a pin is pressed i like to open a description. This can I obtain following the tutorial: http://developer.android.com /resources /tutorials/views/hello-mapview. But now I like to put a button on the overlay window. That button should open a detail activity. How can I make this? How is possible to personalize the overlay "info window"?
View 2 Replies
View Related
Apr 1, 2010
I would like to obtain the transformation matrix of an animation to calculate the position of the view that was animated.It seems the Animation class has a method called getTransformation that can be used to obtain the transformation applied to the view.However, if I use getTransformation before starting the animation I obtain the identity matrix.The program enters an infite loop because getTransformation seems to trigger onAnimationEnd (why?).How should I use getTransformation to obtain the transformation matrix of an animation? Is there another way to do this?
View 1 Replies
View Related
Jun 21, 2010
Is there any efficient linear algebra library for android? I need to compute matrices of different sizes(also bigger than 4x4) and rectangular too.
View 1 Replies
View Related
Aug 20, 2010
Suppose I initialize an AffineTransform as below:AffineTransform af = new AffineTransform(2, 3, 4, 5, 6, 7); How would I create an equivalent Matrix using android's sdk?
View 1 Replies
View Related
Sep 24, 2010
Are you meticulous in removing all per-frame heap allocations from your game? (At least the allocations that you can control and that have practical alternatives.)
While trying to reduce per-frame heap allocations from my running game, I found that method
android.opengl.Matrix rotateM(float[] m, int mOffset, float a, float x, float y, float z)
Does a heap allocation. This means maybe 10 or so extra heap allocations per frame and is the only per-frame allocation left in my application (well, the only one that I can directly control). I am thinking of replacing this with my own version - one that does not do any heap allocations.
I also had some lists that I replaced with my own list implementation because I found that some standard list iterations would create new iteration objects, putting more pressure on the heap and forcing more frequent garbage collection.
I know that I can't eliminate all the heap allocations. In particular, input seems to trigger a bunch of allocations.
I can't help but think that anything reasonable I can do to reduce pressure on the heap will improve the user's experience (if garbage collection is going to stall my game). Obviously there are diminishing returns at some point, so ultimately I have to make a judgement call.
View 8 Replies
View Related
Aug 2, 2009
I got this code from another post and modified it to work for me as a TextView. I tried using the code below but no transformation is happening? I trying to draw the canvas of the TextView with the given Matrix transformation.
import android.content.Context; import android.graphics.Canvas; import android.graphics.Matrix; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.TextView;
public class CTextView extends TextView { private Matrix mForward = new Matrix(); private Matrix mReverse = new Matrix(); private float[] mTemp = new float[2];
public CTextView(Context context) { super(context); mForward.postRotate(90); mForward.invert(mReverse); } public CTextView(Context context, AttributeSet attrs) { super(context, attrs);
mForward.postRotate(90); mForward.invert(mReverse); } public CTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle);
mForward.postRotate(90); mForward.invert(mReverse); }
@Override protected void dispatchDraw(Canvas canvas) { canvas.save(); canvas.concat(mForward); canvas.restore(); super.dispatchDraw(canvas); }
@Override public boolean dispatchTouchEvent(MotionEvent event) { final float[] temp = mTemp; temp[0] = event.getX(); temp[1] = event.getY();
mReverse.mapPoints(temp); event.setLocation(temp[0], temp[1]); return super.dispatchTouchEvent(event); }
View 3 Replies
View Related
Aug 7, 2010
Ive been trying to implement a limit to prevent the user from scaling the image too much in my multitouch zoom app. Problem is, when i set the max zoom level by dumping the matrix, the image starts to translate downward once the overall scale of the image hits my limit. I believe it is doing this because the matrix is still being affected by postScale(theScaleFactorX,theScaleFactorY,myMidpointX,myMidpointY) where theScaleFactorX/Y is the amount to multiply the overall scale of the image (so if the theScaleFatorX/Y is recorded as 1.12, and the image is at .60 of its origional size, the overall zoom is now .67). It seems like some sort of math is going on thats creating this translation, and was wondering if anyone knew what it was so i can prevent it from translating, and only allow the user to zoom back out.
View 1 Replies
View Related
Aug 31, 2010
I might be completely off-base here, but I've spent the last two days trying to figure this out and, without success, you're my only hope.What I'm doing is simple:
* I have a canvas where I draw a circle with center on (10, 10), with radius = 5;
* Then, I obtain the canvas transformation matrix
* And then I create a new rectangle, I map it using the matrix and I use the canvas to draw it.
My problem: basically, the rectangle is being drawn in a different position along the Y-axis.I outputed the transformation matrix and, by default, it is translated by zero in the X-axis and by 25.0 in the Y-axis. Please note that I made NO transformations, either translate, scale or rotate. I am unable to understand why this is happening and how to avoid it.
View 3 Replies
View Related
Jun 23, 2010
I have an OpenGL app that manipulates it's geometry in screen space to acheive some effects, and therefore bypasses OpenGL's matrices by setting modelview and projection to identity. For some reason, Android's OpenGL implementation seems to be unhappy with this, and doesn't draw anything. The same app, compiled from the same code base, works fine on windows and on iPhone. If I load the app's projection matrix into GL's matrix, and multiply it's inverse with the final geometry prior to drawing it (which is effectively a no-op) it displays correctly.
View 6 Replies
View Related
Apr 29, 2010
Just wanted to let folks know I put my Incredible under an inspection scope today and confirmed the PenTile matrix layout is present on the AMOLED screen, similar to the Nexus One. Not a big surprise since it's probably the same stock screen acquired from Samsung, but I thought I'd let everyone know for certain. If you're not familiar with the PenTile matrix arrangement:I'll try to get some real high mag pictures, but it's basically as shown in the first link.Picture of the Incredible's AMOLED screen under high mag.
View 2 Replies
View Related
Apr 22, 2012
I am super new and I want to root my matrix 2 on my MacBook pro any
View 2 Replies
View Related
Apr 7, 2010
I'm using Matrix 0.6 rom,and it's AOSP based, so it had landscape launcher and android keyboard. I was successfully able to pull the .apk for the keyboard, and install it on a different rom, but for the launcher, it failed. Anyone have any ideas?
View 6 Replies
View Related
Apr 24, 2010
its very cool and its free in market.. think you need villain 5.3 to run live wallpaper though.
View 6 Replies
View Related
Jan 7, 2014
I recently bought tablet Matrix d7030. where to download latest firmware for it or if I could use firmware of another device. how to root this specific tablet?
View 1 Replies
View Related
Dec 25, 2012
I'm having with my Matrix One tablet. I'm getting an exclamation mark inside of a triangle, inside of a battery icon. The issue started after I let the battery completely die out. I can't get past that screen. When pressing power the battery icon shows up and the tablet shuts down a second later. I tried all button combinations to get into recovery, nothing worked. I've also tried charging the tablet.
There was one thing I managed to do, that was get the tablet to show up on my computer. I held down the update button with a needle and then held the power button until a blue light indicating the tablet was on showed up. The screen was black but my computer detected a new device. My computer didn't find any drivers for the tablet, so I went in search of them myself and couldn't find any. My tablet is A10 compatible, but none of the A10 drivers I found seem to work on my tablet when I go to manually update it through device manager, neither does the PDAnet method I found online.
I was able to find a recovery that works on my device, one that will allow me to reset my tablet, if I'm able to boot into recovery after I get it on my tablet. Now in order to even test the other recovery I need drivers for my device so ADB can detect it and I can push the recovery. My device is already rooted with Superuser updated to the latest build.
I'll add that I've even taken the liberty of opening up the tablet to see if I can disconnect the battery from the board to cut all power, as I'm unable to do that because the batteries are connected by soldered red and black cables.
View 1 Replies
View Related
Jun 3, 2010
Does anyone know if the Galaxy S' display is also using a PenTile subpixel matrix or "real" RGB subpixels?
View 49 Replies
View Related
Dec 6, 2009
My camera stopped working. When I click my camera application I get the message "The application camera (process com.android.camera) has stopped unexpectedly. Please try again". It's just a blank screen?
View 3 Replies
View Related
Sep 21, 2010
I want to market an overlay for Android Maps. It will provide the "speed limit". My map will have to query the internet for updates pretty heavily as one travels. Q: Should I just use the "Maps external Library" thing? http://code.google.com/android/add-ons/google-apis/maps-overview.html or Q: Can I somehow make it an option in the normal google-map system that everyone has on their phone?
View 7 Replies
View Related
Feb 17, 2009
I am trying to make a map overlay animated much like MyLocationOverlay does. Currently the only things that I can see to make animated are Views but Overlays don't extend View functionality. My next thought was to try to lodge a View into the overlay, but the redundancy makes it seem like this solution is incorrect. I grabbed the android source hoping that I could just look at MyLocationOverlay source and that would let me know how the animation was supposed to be done, but I can't find the source for anything involving maps. If that is available somewhere it would help. Can someone point me to the MyLocationOverlay source or let me know what the paradigm is supposed to look like for animating map overlays?
View 2 Replies
View Related
Sep 23, 2009
Is it possible to create an Android activity as an overlay above other application? If yes, please provide me a pointer.
View 7 Replies
View Related