伙计们,
我试图让这段代码与iPhone 4G上相机拍摄的图像一起使用是不成功的:
iPhone - CGImageCreateWithImageInRect旋转一些相机胶卷图片
此代码适用于裁剪"普通"图像 - 我从互联网上下载的图像或我的iPhone 3G拍摄的图像.
在调用旋转代码后,iPhone 4G相机照片似乎在图像的完全随机部分被裁剪.
我甚至尝试过使用这段代码: 调整从相机中提取的UIimages还可以调整UIimage吗?
然后我将图像"调整"为与实现旋转相同的尺寸,然后尝试裁剪图像而不考虑旋转.也没有运气.
有什么方法可以拍摄iPhone 4G相机上拍摄的图像并将其转换为与从互联网下载的图像具有相同品质/属性的图像(即,没有旋转信息和/或其像素被旋转从一开始就正确),以便我尝试执行的后续操作(在这种情况下裁剪)将按预期工作?
谢谢!
我正在寻找一个应用程序,其中半透明图像覆盖在相机预览上.我知道他们在本机Phonegap相机api中不支持这个.我想知道是否有人在编写Phonegap插件方面有一些经验可以给我任何关于这是否可以使用插件的建议.我想我已经看到这种技术可以通过本机代码实现,所以在我看来可以编写一个Phonegap插件来访问这个功能,我对Phonegap插件没有任何经验.
我一直在尝试使用SimpleCV(www.simplecv.org)模块来运行图像识别和操作.不幸的是,我传入的视频源非常挑剔,而且我不确定我做错了什么.只需使用一些基本的示例代码:
import cvwindow = cv.NamedWindow("camera", 1)
capture = cv.CreateCameraCapture(0)
width = int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH))
height = int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT))
while 1:
img = cv.QueryFrame(capture)
cv.ShowImage("camera", img)
k = cv.WaitKey(1)
if(k == 102):
cv.destroyWindow("camera")
break
Run Code Online (Sandbox Code Playgroud)
当我插入我的Logitech网络摄像头500时,它工作得很好.但是,当我尝试使用我的Vimicro Altair相机时,我得到一个灰色的屏幕,当保存到文件时,文件是空的.
我还尝试使用SimpleCV代码,根据他们的菜谱基于:
mycam = Camera()
img = mycam.getImage()
Run Code Online (Sandbox Code Playgroud)
这同样不成功,但是不返回任何数据,只返回一个完全黑色的图像.
我完全失去了造成这种情况的原因,我在笔记本电脑上尝试了完全相同的系统,甚至无法从Logitech摄像头获取图像.我正在使用Python 2.7和SimpleCV 1.1运行Windows 7 64位.
谢谢
我正试图找到一种干净的方法来"移动画布元素的相机".
这适用于我的原型游戏(侧卷轴).我很乐意认为有一个更好的解决方案,而不是移动整组节点来模拟移动的"相机".
几乎可以肯定已经阅读了一个简单的操作方法(使用偏移?)但事实上我没有发现任何类似的东西开始引起怀疑......我想象中读到了吗??
谢谢你帮我澄清...... J
简而言之:我不能从JPEG照片的RGB值中提取有意义的光强度,并且试图考虑伽马校正或sRGB只会使事情变得更糟.
我正在做一个玩具项目,涉及处理一堆照片图像,用间隔计拍摄.基本上,我想用它们做一个时间流逝,进行一些修正,使剪辑更整洁.我用的是佳能dSLR.
我需要一个函数,在给定JPEG文件的情况下,它会计算出"平均场景亮度".结果应该是一个简单的数字; 不需要在任何绝对光度单位中表达,我只做相对比较.因此,例如,你拍摄一些房间的照片,然后函数返回"5.0".然后在灯光下添加第二个灯泡,与第一个灯泡完全相同,放在旁边,再次拍摄.该功能现在应该给你"10.0".
因此,我目前对此功能的实现结合了以下几个方面:ISO感光度,快门速度,光圈(从EXIF中提取)和平均图像亮度.Exif的东西显然更重要,因为在自动模式下,相机会尝试使用这样的设置,因此图像亮度会在中灰点附近.然而,ISO /快门/光圈设置的分辨率均为1/3或更低,因此检测图像亮度对于"微调"非常重要.
在我这样做的时候,我得到了一些明显的虚假结果,我挖的越多,我就越困惑.所以最后我设置了一个"几乎认真"的实验:
测试设置: 房间内的简单墙壁,用白炽灯照明,照明非常均匀.使用两个相机来比较结果:5D与50mm素数,350D与35mm素数.到墙的距离:约3米.所有照片均以1/10秒的快门速度拍摄.相机设置:手动,"忠实模式"(无增强功能,无饱和度或对比度凹凸),Tungsten WB,无自定义功能,JPEG-Fine,sRGB色彩空间.镜头没有过滤器.照明不会改变,我只改变ISO和光圈设置.以下是我得到的结果:
Avg Spd ISO Aperture
1. 0.3507, 0.10, 100, f/2.8
2. 0.5382, 0.10, 200, f/2.8
3. 0.3557, 0.10, 200, f/4.0
4. 0.2709, 0.10, 200, f/5.0
5. 0.2118, 0.10, 200, f/5.6
6. 0.1718, 0.10, 200, f/6.3
7. 0.1459, 0.10, 200, f/7.1
8. 0.1112, 0.10, 200, f/8.0
9. 0.0883, 0.10, 200, f/9.0
Run Code Online (Sandbox Code Playgroud)
第一列是平均像素值(直接来自JPEG),在整个图像上平均,转换为灰度为(R + G + B)/ 3.通过将[0..255]范围除以255,将颜色在[0..1]范围内归一化.因此,在1)和2)之间,我只更改ISO设置,图像应变为亮度的两倍,但平均像素值仅上升53%(没有任何过度曝光的区域).
2..3:光圈一个停止,所以图像应该变亮一半,所以1)和3)一致(额外的亮度可能是由于渐晕减少)
3..5:再次,一次停止,5)应该是3)的亮度的一半
5..8:同样,应该是一半(这基本上没问题).
这一切都非常非常奇怪.顺便说一下,两台相机之间的结果是一致的,这表明这不仅仅是特定型号的特殊性.
这没有应用任何伽马校正.JPEG读取代码使用C++,基本上遵循IJG示例代码(djpeg实用程序).现在,JPEG保存了伽马校正值,因此像素值应该被视为sRGB颜色空间中的值(获取源像素,转换为[0..1],并应用sRGB->线性RGB变换.让我们尝试一下:
Avg Spd ISO Aperture
1. 0.1140, …Run Code Online (Sandbox Code Playgroud) 是否可以合并从相机拍摄的文字和照片?我想在照片上盖章日期和时间,但我在Google上找不到任何内容.
这是我的问题,当我试图从我拍摄的照片中获取Uri时我会在模拟器和我的设备上使用相机获得null,但是如果我使用其他相机应用程序,只能使用系统相机,总是有效.这是我的代码
用于启动相机应用程序
takePic.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String captured_image = System.currentTimeMillis() + ".jpg";
File file = new File(Environment.getExternalStorageDirectory(), captured_image);
captured_image = file.getAbsolutePath();
outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, CAMERA_REQUEST);
}
});
Run Code Online (Sandbox Code Playgroud)
获取图像
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST) {
ContentResolver cr = getContentResolver();
InputStream in = null;
try
{
in = cr.openInputStream(outputFileUri);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当活动返回时,outputFileUri始终为null.谢谢.
我已在Android应用程序中将图像发布到Google Plus帐户.我从相机拍照,我想在我的谷歌+帐户上发布.
我该怎么做 ?
是否可以拍摄嵌入在应用程序中的视频并将其保存到相机胶卷?如果是这样,怎么样?它是否与UIWriteImage相同?
我有这段代码将代码保存到Documents文件夹.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
UIImage *image = imageView.image; // imageView is my image from camera
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savedImagePath atomically:NO];
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种能够保存多个图像的方法,因为这样可以保留写入savedImage.png名称.
我不介意在谷歌或其他任何地方寻找它,但我需要知道它被称为什么,因为用错误的关键词查找真的推迟了世界:-)
干杯