我尝试编写ios相机,然后从apple中获取了部分代码:
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
// Create a UIImage from the sample buffer data
UIImage *image = [self imageFromSampleBuffer:sampleBuffer];
< Add your code here that uses the image >
}
Run Code Online (Sandbox Code Playgroud)
我需要在程序的任何位置调用此函数。但是因为它需要创建一个对象类型(CMSampleBufferRef)。怎么做?
我试图写类似:
buf1 = [[CMSampleBufferRef alloc]init]
Run Code Online (Sandbox Code Playgroud)
但这是错误的方式。
我想知道是否有人可以向我指出正确的方向,以使用javascript自动调整从手机摄像头拍摄的图像的亮度/对比度,从而使从图像中读取文本更加容易。
感谢任何帮助,
非常感谢。
如何改善相机质量?我想拍摄全屏显示的图片/视频吗?如果我将会话预设设置为AVCaptureSessionPresetPhoto,则它是高质量和全屏模式,仅用于照片而非视频。我已经尝试了其他所有方法,但没有任何效果。当前,它看起来像这样:
编辑
@IBAction func takePhoto(sender: AnyObject) {
var imageViewBackground: UIImageView!
self.fullScreenView.hidden = false
self.recordButton.enabled = false
self.takephoto.enabled = false
self.recordButton.hidden = true
self.takephoto.hidden = true
session.startRunning()
// add the AVCaptureVideoPreviewLayer to the view and sets the view in fullscreen
fullScreenView.frame = view.bounds
videoPreviewLayer.frame = fullScreenView.bounds
fullScreenView.layer.addSublayer(videoPreviewLayer)
// add action to fullScreenView
gestureFullScreenView = UITapGestureRecognizer(target: self, action: #selector(ViewController.takePhoto(_:)))
self.fullScreenView.addGestureRecognizer(gestureFullScreenView)
// add action to myView
gestureView = UITapGestureRecognizer(target: self, action: #selector(ViewController.setFrontpage(_:)))
self.view.addGestureRecognizer(gestureView)
if (preview == true) {
if let videoConnection = …Run Code Online (Sandbox Code Playgroud) 我是Swift初学者,刚刚在我的应用程序中完成了我的照相机功能.我现在遇到的问题是,当我从相机拍摄照片时,它不会保存到我的iPhone上的照片库中.一切都很完美,我可以拍照,但是当我查看照片时,似乎没有保存.我检查了类似的问题,但我没有找到正确的答案,我发现他们是添加按钮直接访问照片库的人,但我不需要这样的按钮.唯一的功能,我需要拍照,当用户点击选择照片将其保存在照片中.
到目前为止我用过这个:
class ViewController: UIViewController, UIImagePickerControllerDelegate,UINavigationControllerDelegate{
let imagePicker: UIImagePickerController! = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
imagePicker.delegate = self
let upSwipe = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipes))
upSwipe.direction = .up
view.addGestureRecognizer(upSwipe)
}
Run Code Online (Sandbox Code Playgroud)
和功能:
func handleSwipes(sender:UISwipeGestureRecognizer) {
if (sender.direction == .up){
if ( UIImagePickerController.isSourceTypeAvailable(.camera)){
if UIImagePickerController.availableCaptureModes(for: .rear) != nil {
imagePicker.allowsEditing = false
imagePicker.sourceType = .camera
imagePicker.cameraCaptureMode = .photo
present(imagePicker,animated: true, completion: {})
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用视频录制应用程序,我想在其中显示预览,并且当用户单击“录制”按钮时它开始录制,而当用户单击“停止”按钮时它停止录制。
我得到了相机预览,并且记录回相机工作正常。
但是,当我将摄像机翻转到前置摄像机并开始记录时,会出现如下错误:
FATAL EXCEPTION: main java.lang.RuntimeException: start failed.
at android.media.MediaRecorder.start(Native Method) at
com.opkix.app.fragments.CameraFragment.startRecording(
CameraFragment.java:104)
Run Code Online (Sandbox Code Playgroud)
这是我录制视频代码的代码:
private boolean prepareMediaRecorder() {
// set the orientation here to enable portrait recording.
mediaRecorder = new MediaRecorder();
mCamera.unlock();
mediaRecorder.setCamera(mCamera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
mediaRecorder.setOutputFile(StorageUtils.getOutputMediaFilePath());
mediaRecorder.setMaxDuration(120000); // Set max duration 60 sec.
mediaRecorder.setMaxFileSize(100000000); // Set max file size 50Mb
mediaRecorder.setPreviewDisplay(mPreview.getHolder().getSurface());
try {
mediaRecorder.prepare();
} catch (IllegalStateException e) {
releaseMediaRecorder();
return false;
} catch (IOException e) {
releaseMediaRecorder();
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
有人可以建议解决方案吗?
基本上我创建了一个不添加视频录制的简单android相机应用程序,我点击了此链接 android相机应用程序教程链接
问题是当我从前置摄像头捕获图像时,单击捕获按钮后,显示镜像的图像就像我们站在镜子前面一样。例如我有右侧箭头图像,但是当我捕获时,它会预览左侧箭头。对不起英语。
camera android android-camera android-camera-intent android-studio
Android nougat 7中不支持相机和图库裁剪在android nougat 7中打开相机我收到此错误消息.
android.os.FileUriExposedException:
file:///storage/emulated/0/file1495176310055.jpg通过ClipData.Item.getUri()暴露在app之外
我尝试使用> 180度的超广角镜头校准相机。我使用的是OpenCV 3.2和相机校准代码opencv/samples/cpp/tutorial_code/calib3d/camera_calibration,因此我从这篇文章中得到的图像与此相似。我在youtube.com上发现了许多电影,人们在这些电影上展示了如何校准鱼眼镜头,例如此视频。
我知道超广角镜头相机的校准可能很棘手。我还发现在openCV contrib中还有另一个用于鱼眼镜头校准的标准模型
是否可以使用标准OpenCV的摄像机校准模型来校准这种广角摄像机,还是应该使用其他模型(例如,openCV contrib的模型)?
我正在使用PWA应用程序。Webapp已完成。它使用MediaDevices API 在浏览器中具有相机,视频和音频记录功能。在台式机和移动设备(如Android)中使用Chrome或Firefox测试此应用程序时,一切正常。
但是,根据浏览器的“兼容性”选项卡,此功能受少数浏览器支持。
受此限制,我被分配去开发一个使用本地电话资源的混合应用程序。