我正在尝试使用OpenCV 2.4.3.2创建一个相机应用程序并进行一些opencv处理.我希望它能够有多个UI方向,而不仅仅是Landscape.
问题是,当我将方向更改为纵向时,图像会侧向出现.
我知道我可以在进行图像处理之前旋转输入图像(因此只将方向保留为横向),这很好并且有效,但是没有解决我的其他UI将处于错误方向的问题.
我也尝试使用这段代码来旋转相机90deg,但它似乎没有用.
mCamera.setDisplayOrientation(90);
Run Code Online (Sandbox Code Playgroud)
它要么没有效果,要么有时只会导致预览变黑
有人用OpenCV成功完成了这项工作吗?我的类扩展自JavaCameraView.

我做了一些改进,就是我在OpenCV中旋转了图像,因为它在CameraBridgeViewBase.java类中显示.
在交付和绘制框架方法中:
if (canvas != null) {
canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR);
//canvas.drawBitmap(mCacheBitmap, (canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, null);
//Change to support portrait view
Matrix matrix = new Matrix();
matrix.preTranslate((canvas.getWidth() - mCacheBitmap.getWidth()) / 2,(canvas.getHeight() - mCacheBitmap.getHeight()) / 2);
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
matrix.postRotate(90f,(canvas.getWidth()) / 2,(canvas.getHeight()) / 2);
canvas.drawBitmap(mCacheBitmap, matrix, new Paint());
Run Code Online (Sandbox Code Playgroud)
...基本上,这只是像输入图像一样

这样更好,但我显然希望这是全屏.
是否可以反映结构的字段,并获得对其标记值的引用?
例如:
type User struct {
name string `json:name-field`
age int
}
...
user := &User{"John Doe The Fourth", 20}
getStructTag(user.name)
...
func getStructTag(i interface{}) string{
//get tag from field
}
Run Code Online (Sandbox Code Playgroud)
从我所看到的,通常的方法是将范围超过typ.NumField(),然后调用field.Tag.Get("tagname").但是,在我的用例中,不必传递整个结构就好了.任何想法?
所以我想同时旋转一些视图,所有视图都使用相同的旋转规格.问题在于,由于某种原因,旋转对第二个元素的作用不同.显然,这与动画对象实际上在这两行代码之间改变状态有关.显然我可以创建一个单独的Animation对象并应用它,但我觉得有一种更简单的方法(我有大约15个视图)
仅正确旋转第一个视图:
Animation rotateAnim = AnimationUtils.loadAnimation(this, R.anim.rotationtoportrait);
target.startAnimation(rotateAnim);
lightBtn.startAnimation(rotateAnim);
Run Code Online (Sandbox Code Playgroud)
正确旋转
Animation rotateAnim = AnimationUtils.loadAnimation(this, R.anim.rotationtoportrait);
Animation rotateAnim2 = AnimationUtils.loadAnimation(this, R.anim.rotationtoportrait);
target.startAnimation(rotateAnim);
lightBtn.startAnimation(rotateAnim2);
Run Code Online (Sandbox Code Playgroud)
XML:
<?xml version="1.0" encoding="utf-8"?>
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="-90"
android:toDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500" android:fillAfter="true">
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?
我正在尝试安装GDB以与Mavericks上的LiteIDE一起使用.
经过一些研究,我发现GDB不再带有Xcode,而且你必须自己安装它.如果没有实际从源代码安装GDB和自我代码签名(id而不是这样做),我想使用MacPorts来完成这项工作.
我做了port install gdb,据我所知,跑步和成功.安装完成后,我关闭了终端,然后输入了gdb,我得到了-bash: gdb: command not found
有没有人有这个解决方案,使用MacPorts ???
我正在创建一个使用水龙头来聚焦功能的相机应用程序,就像许多标准相机应用程序一样.我首先得到触摸事件的(x,y)坐标,然后将此值传递给UI.然后,我尝试设置焦点区域,如下所示:
Rect newRect = new Rect(left,top,right, bottom);
Camera.Parameters params = mCamera.mCameraInstance.getParameters();
Camera.Area focusArea = new Camera.Area(newRect, 1000);
List<Camera.Area> focusAreas = new ArrayList<Camera.Area>();
focusAreas.add(focusArea);
params.setFocusAreas(focusAreas);
Run Code Online (Sandbox Code Playgroud)
但是,它似乎没有任何效果.所以,我将一些值硬编码到矩形中(这样,我可以排除触摸事件中的坏坐标). 根据文档,它正在寻找空间中的坐标(-1000,-1000)(左上)到(1000,1000)(右下).
所以我用这个替换了上面的矩形:
//should target a 100x100 square in the center of the screen
Rect newRect = new Rect(-50,-50,50, 50);
Run Code Online (Sandbox Code Playgroud)
而且,似乎没有效果.我知道我的相机支持设置对焦区域,因为首先,相机应用程序成功使用它,并且params.getMaxNumFocusAreas()返回1.
如果有人在过去成功使用过这个,请告诉我!
我发现这个类似的问题似乎也表明这个API根本无法在Android 4.0设备上运行(我正在测试4.1.1,Galaxy S3).然而,这些设备上的相机应用程序仍然具有点对点功能.我错过了什么?
这可能很容易与另一个问题重复,我只是在努力弄清楚要搜索什么.
我的相机应用程序被锁定在横向模式(在清单中),如下所示:
android:screenOrientation="landscape"
Run Code Online (Sandbox Code Playgroud)
不过,我想还是有的旋转UI元素,当设备旋转为纵向(尽管机器人仍然会想起它的目的在景观,但多数民众赞成).
所以我试过这个来检查方向
int rotation = this.getWindowManager().getDefaultDisplay()
.getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0:
Log.d("Rotation", "0");
break;
case Surface.ROTATION_90:
Log.d("Rotation", "90");
break;
case Surface.ROTATION_180:
Log.d("Rotation", "180");
break;
case Surface.ROTATION_270:
Log.d("Rotation", "270");
break;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,无论我如何转动手机,它总会返回90.是否有更强大的方式来获得方向,无论Android"认为"的方向是什么?
所以我的兄弟是假期的家,他正在努力学习HTML和Javascript.我已经取得了一些成功,向他解释了许多与此相关的概念.大多数标签都非常自我解释,但我一直在努力描述div标签.
说实话,我从来没有真正得到一个很好的描述,只是通过我知道何时使用它的经验.
一个好的答案不需要包括"块元素"的定义或任何其他技术术语,尽管您可以假设一些HTML标签的一些基本知识
尝试在Go中模拟基本上是AES ECB模式加密的算法.
这是我到目前为止所拥有的
func Decrypt(data []byte) []byte {
cipher, err := aes.NewCipher([]byte(KEY))
if err == nil {
cipher.Decrypt(data, PKCS5Pad(data))
return data
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
我还有一个PKCS5Padding算法,经过测试和工作,它首先填充数据.我无法找到有关如何在Go AES包中切换加密模式的任何信息(它绝对不在文档中).
我有这个代码用另一种语言,这就是我知道这个算法不能正常工作的方式.
编辑:这是我在问题页面上解释的方法
func AESECB(ciphertext []byte) []byte {
cipher, _ := aes.NewCipher([]byte(KEY))
fmt.Println("AESing the data")
bs := 16
if len(ciphertext)%bs != 0 {
panic("Need a multiple of the blocksize")
}
plaintext := make([]byte, len(ciphertext))
for len(plaintext) > 0 {
cipher.Decrypt(plaintext, ciphertext)
plaintext = plaintext[bs:]
ciphertext = ciphertext[bs:]
}
return plaintext
}
Run Code Online (Sandbox Code Playgroud)
这实际上并没有返回任何数据,也许我在将其从编写脚本转换为decripting时搞砸了
我正在尝试从Android的GPUImage(ios)重新创建GPUImageTwoPassFilter .我正在完成这里为GPUImage的Android端口所做的工作.该端口实际上适用于许多过滤器.我已经移植了很多着色器,基本上都是排队的,取得了巨大的成功.
问题是要移植一些过滤器,你必须从GPUImage扩展GPUImageTwoPassFilter,而android版本的作者尚未实现.我想写一下它,但不幸的是iOS版本没有文档,所以我不确定TwoPass过滤器应该做什么.
有没有人有任何关于这个的提示?我对openGL知之甚少,但对Android和iOS非常了解.我肯定在这里寻找一个非常的psudocode描述
我正在尝试使用节点(表达v3.1.0)设置Consolidate,以使用Swig.我一直在收到错误
错误:无法在Module.require的Function.Module._load(module.js:280:25)的Function.Module._resolveFilename(module.js:338:15)中找到模块'swig'(module.js:362:17) )at function(export.js:378:17)at Function.exports.swig.render(/home/jamie/node_modules/consolidate/lib/consolidate.js:237:50)/ home/jamie/node_modules /巩固/ lib/consolidate.js:144:25 athome/jamie/node_modules/consolidate/lib/consolidate.js:97:5 at fs.readFile(fs.js:176:14)at Object.oncomplete(fs.js: 297:15)
在顶部,我这样设置
var express = require('express');
var cons = require('consolidate');
// assign the swig engine to .html files
console.log(cons.swig);
app.engine('html', cons.swig);
// set .html as the default extension
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
Run Code Online (Sandbox Code Playgroud)
然后我这样提出我的要求:
app.get('/', function(req, res){
res.render('home', {
title: "home"
});
});
Run Code Online (Sandbox Code Playgroud)
我在根目录/视图中有一个模板home.html
我的根目录是/ home/jamie/hello-world.我在这做错了什么?
编辑 顺便说一句,console.log(cons.swig)确实返回了一些内容.
{ [Function] render: [Function] }
Run Code Online (Sandbox Code Playgroud)
所以它绝对存在