我已经围绕SO和谷歌链接做了很多阅读.
我还没弄明白如何正确地将图像添加到eclipse gui项目中,这样系统就能识别它.我知道有一些关于CLASSPATH的mumbojumbo但它可能不应该这么难做.
让我先描述一下我在做什么......(如果有人能够纠正我,那就更感激了.)
这是我的方法.
我使用"导入向导"(右键单击,"导入","常规","文件")将图像添加到"导入目录"中,我称之为"/ resources"
Eclipse在eclipse包资源管理器的树视图中自动创建一个名为"resources"的文件夹.在"参考图书馆"条目下.
注意,"资源"不在"引用的库"下,它在树中处于同一级别.
然后我使用以下代码:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/resources/image.jpg");
Image logo = ImageIO.read(input);
Run Code Online (Sandbox Code Playgroud)
此时,我运行测试程序并得到此错误:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at Test.main(Test.java:17)
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
我一直在尝试使用方形纹理渲染GL_QUAD(形状为梯形).我想尝试使用OpenGL来解决这个问题.现在纹理变得严重扭曲,这真的很烦人.
通常情况下,我会加载纹理计算单应性,但这意味着大量的工作和额外的线性编程库/直接线性变换函数.我的印象是OpenGL可以为我简化这个过程.
我环顾网络,看过"透视 - 正确纹理,Q坐标和GLSL"和"OpenGL中的倾斜/剪切纹理映射".
这些似乎都假设你会做某种类型的单应性计算或使用OpenGL的某些部分我不知道......任何建议?
更新:
我一直在阅读"使用图像空间简化和变形导航静态环境" [ PDF ] - 第9页附录A.
看起来他们通过将(s,t,r,q)纹理坐标与模型的世界空间z分量的顶点相乘来禁用透视校正.
因此对于给定形状为梯形的四边形的给定纹理坐标(s,r,t,q),其中4个分量是:
(0.0f, 0.0f, 0.0f, 1.0f),
(0.0f, 1.0f, 0.0f, 1.0f),
(1.0f, 1.0f, 0.0f, 1.0f),
(1.0f, 0.0f, 0.0f, 1.0f)
Run Code Online (Sandbox Code Playgroud)
这和glTexCoord4f(s vert.z,r vert.z,t,q*vert.z)一样简单吗?或者我错过了一些步骤?喜欢弄乱GL_TEXTURE glMatrixMode?
更新#2:
这就是诀窍!记住这一点,这个问题遍布整个网络,并没有任何简单的答案.大多数涉及直接重新计算纹理与原始形状和变换形状之间的单应性...也就是大量的线性代数和外部BLAS lib依赖.
我正在处理一个非常大的稀疏矩阵乘法(matmul)问题.举个例子,让我们说:
A是二进制(75 x 200,000)矩阵.它很稀疏,所以我使用csc进行存储.我需要做以下matmul操作:
B = A.transpose()*A.
输出将是一个大小为200Kx200K的稀疏对称矩阵.
不幸的是,B将是方式在我的笔记本电脑到大的RAM来存储(或"核心").另一方面,我很幸运,因为B有一些属性可以解决这个问题.
由于B将沿对角线和稀疏对称,我可以使用三角矩阵(上/下)来存储matmul操作的结果,稀疏矩阵存储格式可以进一步减小尺寸.
我的问题是......可以提前告诉numpy或scipy,输出存储要求会是什么样子,以便我可以使用numpy选择存储解决方案并避免"矩阵太大"运行时错误几分钟(小时)的计算?
换句话说,通过使用近似计数算法分析两个输入矩阵的内容,可以近似地对矩阵的存储要求进行近似.
如果没有,我正在寻找一个强力解决方案.来自以下Web链接的涉及map/reduce,核心外存储或matmul细分解决方案(strassens算法)的内容:
一对Map/Reduce问题细分解决方案
一种核外(PyTables)存储解决方案
一个matmul细分解决方案:
提前感谢任何建议,评论或指导!
python numpy combinatorics sparse-matrix matrix-multiplication
我有兴趣在python中使用usb设备进行一些跨平台工作,有关可以执行此类操作的模块的任何提示或建议吗?
我看了SF和googlecode没有很多运气.
谢谢!
CT
我一直在研究一个使用clang/llvm的小工具,但是我无法成功地获取g ++和gnu的链接器来正确链接我的代码与clang.
我的链接器生成以下错误:
undefined reference to `clang::FileManager::~FileManager()'
undefined reference to `clang::FileManager::FileManager()'
undefined reference to `llvm::sys::getHostTriple()'
undefined reference to `clang::Diagnostic::Diagnostic(clang::DiagnosticClient*)'
undefined reference to `llvm::outs()'
undefined reference to `clang::TargetInfo::CreateTargetInfo(clang::Diagnostic&, clang::TargetOptions&)'
undefined reference to `clang::SourceManager::getOrCreateContentCache(clang::FileEntry const*)'
undefined reference to `clang::SourceManager::createFileID(clang::SrcMgr::ContentCache const*, clang::SourceLocation, clang::SrcMgr::CharacteristicKind, unsigned int, unsigned int)'
Run Code Online (Sandbox Code Playgroud)
我的编译命令如下所示:
g++ -g -fno-rtti -I~/llvm-2.8/tools/clang-2.8/include \
-I~/llvm-2.8/llvm/include \
`~/bin/llvm-config --cxxflags` \
-c Frontend.cpp
g++ -g -fno-rtti -I~/llvm-2.8/tools/clang-2.8/include \
-I~/llvm-2.8/llvm/include \
`~/bin/llvm-config --cxxflags` \
-c exec.cpp
g++ -I~/llvm-2.8/tools/clang-2.8/include \
-I~/llvm-2.8/llvm/include -L~/opt/lib/ \
-g -fno-rtti -lclangDriver -lclangAnalysis \ …Run Code Online (Sandbox Code Playgroud) 我在Python中使用PIL编写了一些代码,它会将UTF-8字符打印到图像中.
我注意到,为了加入像阿拉伯语这样的Bidi脚本,相同的代码无法正确连接字符(只选择初始表单,不使用中间和最终表单)
任何人都可以推荐一种方法或技术来解决这个特殊问题吗?
python multilingual image-manipulation bidi character-encoding
我一直试图找出如何在两个平面之间进行单应性并将其转换为投影变换.Matlab会自动执行此操作,但我一直在试图弄清楚matlab如何实现转换.
我有一种情况,其中有一个类定义,如下所示:
template<class T>
class Alpha< Bravo<T> >
{
....
};
Run Code Online (Sandbox Code Playgroud)
我正在使用gnu g ++进行编译,编译器抱怨Alpha是"不是模板".
我已经看到了在Bravo编写的库中使用的相同技术,而Bravo是一个模板化的类.我错过了什么吗?我已经将Alpha剥离到骨头并完成测试,没有编译成功.我也尝试从我在Bravo的库中看到的这个地方复制+粘贴代码,同样的事情,没有成功,同样的错误.
提前致谢.
我正在使用霍夫变换(极坐标).我想从霍夫变换的坐标计算一条线的矢量表示.
我当前的实现循环遍历图像中从(0,0)到(M,N)的所有像素坐标,其中M和N是图像的大小.当循环遍历空间时,计算此值:
//角度和rho是霍夫空间的极坐标.
tmp =(int)((i*cos(angle))+(j*sin(angle)));
其中tmp -rho == 0,是该行的一部分,所以我跟踪该位置.当循环到达图像的末尾(i,j)==(M,N)时,循环再次从相反方向(M,N)到(0,0)完成.
第一个(tmp-rho == 0)从左到右,第二个(tmp-rho == 0)从右到左是该线的坐标.然后我减去那些像素坐标以得到霍夫空间中的线的矢量.
这是非常低效(慢),我100%肯定有更好的方法来计算这个,但是,我似乎无法弄明白.任何帮助将不胜感激!