小编Mat*_*teo的帖子

ImageView坐标和位图像素之间的对应关系 - Android

在我的应用程序中,我希望用户能够选择一个包含在其中的图像的某些内容ImageView.

要选择内容,我将该ImageView类子类化,使其实现,OnTouchListener以便在其上绘制一个由用户决定的带边框的矩形.

下面是绘图结果的示例(要了解它的工作原理,您可以将其视为在桌面上单击鼠标并拖动鼠标时):

enter image description here

现在我需要确定哪些像素的的Bitmap图像对应于所选择的部分.很容易确定哪些是ImageView属于矩形的点,但我不知道如何获得对应的像素,因为它ImageView具有与原始图像不同的纵横比.

我遵循这里特别描述的方法,但也在这里,但我并不完全满意,因为在我看来,对应关系是在像素和点之间的1对1 ImageView,并没有给我原始图像上的所有对应像素到选定的区域.

hoveredRect在其ImageView内部的点上调用矩形是:

class Point {
    float x, y;
    @Override
    public String toString() {
        return x + ", " + y;
    }
}

Vector<Point> pointsInRect = new Vector<Point>();

for( int x = hoveredRect.left; x <= hoveredRect.right; x++ ){
    for( int y = hoveredRect.top; y <= hoveredRect.bottom; y++ ){

        Point pointInRect = new Point();
        pointInRect.x …
Run Code Online (Sandbox Code Playgroud)

java android android-image android-imageview

12
推荐指数
1
解决办法
6941
查看次数

神经网络结构设计

我正在玩神经网络试图根据你需要解决的问题来理解设计架构的最佳实践.

我生成了一个由单个凸区域组成的非常简单的数据集,如下所示:

在此输入图像描述

当我使用L = 1或L = 2隐藏层(加上输出层)的架构时,一切正常,但是当我添加第三个隐藏层(L = 3)时,我的性能下降到略好于机会.

我知道你添加到网络中的复杂性越多(要学习的权重和参数的数量),你越倾向于过度拟合数据,但我认为这不是我问题的本质,原因有两个:

  • 我在训练集上的表现也是60%左右(而过度拟合通常意味着你的训练误差非常低,测试误差很大),
  • 而且我有大量的数据示例(不要看那个只有我上传的玩具人物的数字).

任何人都可以帮助我理解为什么添加一个额外的隐藏层会让我在这么简单的任务中失败?

这是我的表现图像作为所用图层数量的函数:

在此输入图像描述

补充部分评论如下:

  • 我正在使用sigmoid函数,假设值介于0和1之间, L(s) = 1 / 1 + exp(-s)
  • 我正在使用早期停止(在40000次反向提升之后)作为停止学习的标准.我知道这不是停止的最佳方式,但我认为这对于这样一个简单的分类任务是可以的,如果你认为这是我不融合的主要原因II可能会实现一些更好的标准.

artificial-intelligence backpropagation neural-network

10
推荐指数
1
解决办法
2040
查看次数

Adaboost中的参数选择

在使用OpenCV进行提升之后,我正在尝试实现我自己的Adaboost算法版本(请点击此处,此处原始论文以获取一些参考资料).

通过阅读所有材料,我提出了一些关于算法实现的问题.

1)我不清楚如何分配每个弱学习者的权重a_t.

在我所指出的所有来源中,选择是a_t = k * ln( (1-e_t) / e_t ),k是一个正常数,而e_t是特定弱学习者的错误率.

在这个来源的第7页,它说该特定值最小化某个凸可微函数,但我真的不明白这段经文.

  • 有人可以向我解释一下吗?

2)我对训练样本的重量更新程序有一些疑问.

显然,应该以这样的方式来保证它们仍然是概率分布.所有参考文献都采用这种选择:

D_ {t + 1}(i)= D_ {t}(i)*e ^( - a_t y_i h_t(x_i))/ Z_t(其中Z_t是选择的归一化因子,使得D_ {t + 1}是分布).

  • 但是为什么权重的特定选择更新乘以特定弱学习者的错误率的指数?
  • 还有其他更新吗?如果是,是否有证据证明此更新保证了学习过程的某种最优性?

我希望这是发布此问题的正确位置,如果没有请重定向我!
提前感谢您提供的任何帮助.

opencv machine-learning adaboost

9
推荐指数
1
解决办法
1096
查看次数

张量乘法与numpy tensordot

我有一个由n维矩阵(d,k)和维数(k,n)的矩阵V组成的张量U.

我想将它们相乘,以便结果返回一个维度矩阵(d,n),其中列j是U的矩阵j和V的列j之间的矩阵乘法的结果.

在此输入图像描述

获得这个的一种可能方法是:

for j in range(n):
    res[:,j] = U[:,:,j] * V[:,j]
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更快的方法使用numpy库.特别是我正在考虑这个np.tensordot()功能.

这个小片段允许我将单个矩阵乘以标量,但对向量的明显推广并没有返回我所希望的.

a = np.array(range(1, 17))
a.shape = (4,4)
b = np.array((1,2,3,4,5,6,7))
r1 = np.tensordot(b,a, axes=0)
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

python performance numpy matrix linear-algebra

9
推荐指数
1
解决办法
3847
查看次数

matplotlib在单个pdf页面中显示许多图像

给定未知大小的图像作为输入,以下python脚本在单个pdf页面中显示8次:

pdf = PdfPages( './test.pdf' )
gs = gridspec.GridSpec(2, 4)

ax1 = plt.subplot(gs[0])
ax1.imshow( _img )

ax2 = plt.subplot(gs[1])
ax2.imshow( _img )

ax3 = plt.subplot(gs[2])
ax3.imshow( _img )

# so on so forth...

ax8 = plt.subplot(gs[7])
ax8.imshow( _img )

pdf.savefig()
pdf.close()
Run Code Online (Sandbox Code Playgroud)

输入图像可以具有不同的大小(先验未知).我尝试使用该函数gs.update(wspace=xxx, hspace=xxx)来更改图像之间的间距,希望这matplotlib会自动调整大小并重新分配图像以尽可能减少空白.但是,正如您在下面看到的那样,它没有像我预期的那样工作.

有没有更好的方法来实现以下目标?

  1. 以最大分辨率保存图像
  2. 可以减少空白区域

理想情况下,我希望8个图像完全符合页面大小pdf(需要最小的边距量).

在此输入图像描述

在此输入图像描述

python pdf image matplotlib

7
推荐指数
1
解决办法
2599
查看次数

THREE.js - 将THREE.SkinnedMesh添加到自定义骨架结构中

我试图在定义人体模型THREE.js使用的类THREE.Bone,THREE.SkeletonTHREE.SkinnedMesh.

我定义了一个由12个主体部分组成的自定义骨架结构,每个部分都是一个THREE.Bone实例,并使用该.add()方法定义它们之间的父/子关系.最后,我创建了一个标准THREE.Object3D作为完整骨架的父体的体根.

仅发布部分结构以简明扼要:

// create person object
var body_root = new THREE.Object3D()

// create torso
var torso  = new THREE.Bone();
torso.id   = 1;
torso.name = "torso";
x_t = 0;
y_t = 0;
z_t = 0;
torso.position.set(x_t,y_t,z_t);
x_alpha = 0 * Math.PI;
y_alpha = 0 * Math.PI;
z_alpha = 0 * Math.PI;
torso.rotation.set(x_alpha,y_alpha,z_alpha);

// create right arm
var right_arm = new THREE.Bone();
right_arm.id   = 2;
right_arm.name = …
Run Code Online (Sandbox Code Playgroud)

javascript three.js

7
推荐指数
0
解决办法
1476
查看次数

是否可以对英特尔的可信平台模块进行编程

我想知道是否有可能在大多数英特尔芯片中编程TPM(http://en.wikipedia.org/wiki/Trusted_Platform_Module),以这种方式:

- decide what to store in the persistent memory
- decide which cryptographic algorithms to implement.
Run Code Online (Sandbox Code Playgroud)

显然它一旦开始工作就不应该是可重新编程的(你知道这个陈述是否正确吗?).

hardware cryptography intel tpm

6
推荐指数
1
解决办法
3916
查看次数

使用OpenCV丢弃单元格图像中的异常SIFT关键点

我正在接近生物信息学的任务,需要从一些细胞图像中提取一些特征.

我使用SIFT算法提取图像内部的关键点,如图所示.

在此输入图像描述

你也可以在图片中看到(用红色圈出),一些关键点是异常值,我不想计算它们的任何特征.

cv::KeyPoint用以下代码获得了向量:

const cv::Mat input = cv::imread("/tmp/image.jpg", 0); //Load as grayscale

cv::SiftFeatureDetector detector;
std::vector<cv::KeyPoint> keypoints;
detector.detect(input, keypoints);
Run Code Online (Sandbox Code Playgroud)

但是我想从vector所有这些关键点中丢弃,例如,在图像中以它们为中心的某个感兴趣区域(ROI)内有少于3个关键点.

因此,我需要实现一个函数,返回作为输入给定的某个ROI内的关键点数:

int function_returning_number_of_key_points_in_ROI( cv::KeyPoint, ROI );
   //I have not specified ROI on purpose...check question 3
Run Code Online (Sandbox Code Playgroud)

我有三个问题:

  1. 是否有任何现有功能做类似的事情?
  2. 如果没有,你可以帮我理解如何自己实施吗?
  3. 您是否会使用循环或矩形ROI执行此任务?您将如何在输入中指定它?

注意:

我忘了指定我想要一个有效的函数实现,即检查每个关键点所有其他关键点相对于它的相对位置将不是一个好的解决方案(如果存在另一种方式).

c++ opencv computer-vision sift

6
推荐指数
1
解决办法
3057
查看次数

用Matlab绘制高斯网格

使用以下代码,我可以绘制单个2D高斯函数的图:

x=linspace(-3,3,1000);
y=x';               
[X,Y]=meshgrid(x,y);
z=exp(-(X.^2+Y.^2)/2);
surf(x,y,z);shading interp
Run Code Online (Sandbox Code Playgroud)

这是制作的情节:

在此输入图像描述

但是,我想绘制一个具有指定数量x的这些2D高斯的网格.将以下图片视为我想要制作的图的上图(特别是网格由5x5 2D高斯制成).应该用一个系数对每个高斯进行加权,如果它是负的,则高斯指向z轴的负值(下面网格中的黑点),如果它是正的,则如上图所示(下面网格中的白点) .

在此输入图像描述

让我提供一些数学细节.网格对应于2D高斯的混合,如下式所示:

在此输入图像描述

其中每个高斯都有自己的均值和偏差.

注意,混合物的每个高斯分布应该被放置在确定的(X,Y)坐标中,使得它们彼此相等.例如,考虑(0,0)中的中心高斯,然后其他的应该在(-1,1)(0,1)(1,1)( - 1,0)(1,0)(-1, -1)(0,-1)(1,-1)在网格尺寸为3x3的情况下.

你能告诉我(并向我解释)我怎么能做这样的情节?在此先感谢您的帮助.

matlab plot mesh

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

斯坦福CoreNLP python界面安装错误

我正在尝试在Ubuntu 12.04.5 LTS上构建stanford NLP的python接口.需要两个步骤,第一步是:

  1. 通过在3rdParty/jpype中运行"rake setup"来编译Jpype

这样做时,我收到以下错误:

In file included from src/native/common/jp_monitor.cpp:17:0:
src/native/common/include/jpype.h:45:17: fatal error: jni.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
rake aborted!
Command failed with status (1): [cd JPype-0.5.4.1 && python setup.py build...]
Run Code Online (Sandbox Code Playgroud)

错误消息说我失踪了jni.h,所以如果我运行命令得到这里的建议.dpkg-query -L openjdk-7-jdk | grep "jni.h"/usr/lib/jvm/java-7-openjdk-amd64/include/jni.h

我相信这意味着jni.h我的系统已经存在,所以我现在很困惑.是什么导致错误?你能建议任何修复吗?

谢谢你的帮助!


一些更多的见解

以下是导致错误的指令:

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/include -I/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/include/linux -Isrc/native/common/include -Isrc/native/python/include -I/usr/include/python2.7 -c src/native/common/jp_class.cpp -o …
Run Code Online (Sandbox Code Playgroud)

python java java-native-interface openjdk stanford-nlp

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