在我的应用程序中,我希望用户能够选择一个包含在其中的图像的某些内容ImageView.
要选择内容,我将该ImageView类子类化,使其实现,OnTouchListener以便在其上绘制一个由用户决定的带边框的矩形.
下面是绘图结果的示例(要了解它的工作原理,您可以将其视为在桌面上单击鼠标并拖动鼠标时):

现在我需要确定哪些像素的的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 …我正在玩神经网络试图根据你需要解决的问题来理解设计架构的最佳实践.
我生成了一个由单个凸区域组成的非常简单的数据集,如下所示:

当我使用L = 1或L = 2隐藏层(加上输出层)的架构时,一切正常,但是当我添加第三个隐藏层(L = 3)时,我的性能下降到略好于机会.
我知道你添加到网络中的复杂性越多(要学习的权重和参数的数量),你越倾向于过度拟合数据,但我认为这不是我问题的本质,原因有两个:
任何人都可以帮助我理解为什么添加一个额外的隐藏层会让我在这么简单的任务中失败?
这是我的表现图像作为所用图层数量的函数:

补充部分评论如下:
L(s) = 1 / 1 + exp(-s)在使用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}是分布).
我希望这是发布此问题的正确位置,如果没有请重定向我!
提前感谢您提供的任何帮助.
我有一个由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]
我想知道是否有更快的方法使用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)
有什么建议吗?
给定未知大小的图像作为输入,以下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()
输入图像可以具有不同的大小(先验未知).我尝试使用该函数gs.update(wspace=xxx, hspace=xxx)来更改图像之间的间距,希望这matplotlib会自动调整大小并重新分配图像以尽可能减少空白.但是,正如您在下面看到的那样,它没有像我预期的那样工作.
有没有更好的方法来实现以下目标?
理想情况下,我希望8个图像完全符合页面大小pdf(需要最小的边距量).


我试图在定义人体模型THREE.js使用的类THREE.Bone,THREE.Skeleton和THREE.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 = …我想知道是否有可能在大多数英特尔芯片中编程TPM(http://en.wikipedia.org/wiki/Trusted_Platform_Module),以这种方式:
- decide what to store in the persistent memory
- decide which cryptographic algorithms to implement.
显然它一旦开始工作就不应该是可重新编程的(你知道这个陈述是否正确吗?).
我正在接近生物信息学的任务,需要从一些细胞图像中提取一些特征.
我使用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);
但是我想从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
我有三个问题:
注意:
我忘了指定我想要一个有效的函数实现,即检查每个关键点所有其他关键点相对于它的相对位置将不是一个好的解决方案(如果存在另一种方式).
使用以下代码,我可以绘制单个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
这是制作的情节:

但是,我想绘制一个具有指定数量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的情况下.
你能告诉我(并向我解释)我怎么能做这样的情节?在此先感谢您的帮助.
我正在尝试在Ubuntu 12.04.5 LTS上构建stanford NLP的python接口.需要两个步骤,第一步是:
这样做时,我收到以下错误:
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...]
错误消息说我失踪了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 …python ×3
java ×2
opencv ×2
adaboost ×1
android ×1
c++ ×1
cryptography ×1
hardware ×1
image ×1
intel ×1
javascript ×1
matlab ×1
matplotlib ×1
matrix ×1
mesh ×1
numpy ×1
openjdk ×1
pdf ×1
performance ×1
plot ×1
sift ×1
stanford-nlp ×1
three.js ×1
tpm ×1