小编gav*_*gav的帖子

卷积滤波器 - Float Precision C Vs Java

我正在将一个图像处理例程库从Java移植到C中,当我比较结果时,我得到了一些非常小的差异.这些差异在于不同语言对浮动值的处理是否合理,还是我还有工作要做!

例程是使用3 x 3内核的卷积,它在由线性像素阵列,宽度和深度表示的位图上操作.您无需完全理解这段代码来回答我的问题,它只是供参考.

Java代码;

for (int x = 0; x < width; x++){
            for (int y = 0; y < height; y++){
                int offset = (y*width)+x;
                if(x % (width-1) == 0 || y % (height-1) == 0){
                    input.setPixel(x, y, 0xFF000000); // Alpha channel only for border
                } else {
                    float r = 0;
                    float g = 0;
                    float b = 0;
                    for(int kx = -1 ; kx <= 1; kx++ ){
                        for(int ky = -1 ; ky <= 1; …
Run Code Online (Sandbox Code Playgroud)

c java floating-point image convolution

4
推荐指数
1
解决办法
2417
查看次数

从int获取Bytes以避免变换乐趣 - Java(中值过滤)

我正在尝试在Java中对图像执行中值过滤器,但速度非常慢.首先,如果你们有任何人知道我可以使用它的独立实现,那么如果你能让我知道的话会很棒.我正在Android上实现,试图复制JAI的一小部分.

在我的方法中,我采用每个像素,使用提取R,G和B值

r = pixel >> 16 & 0xFF
Run Code Online (Sandbox Code Playgroud)

或类似的,找到内核的中位数并完成

pixel = a | r <<16 | g << 8 | b 
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以从int中获取字节,这样会更快?

亲切的问候,

加文


编辑:完整的代码,以帮助诊断我的低性能请求

对于实际的源文件,请转到这里我可以找到medianFilter的实现.

widthheight变量用于dest的大小,可用作类成员变量.像素被线性化为一维阵列.

private void medianFilterSquare(int[] source, int[] dest, int rWidth,
        int rHeight, int radius) {
    // Source has been reflected into a border of size radius
    // This makes it radius * 2 pixels wider and taller than the dest
    int r,g,b;
    int destOffset, rOffset, …
Run Code Online (Sandbox Code Playgroud)

java algorithm image-processing

4
推荐指数
1
解决办法
2931
查看次数

具有渐变的Silverlight线图

我有一系列要点,我将在图表上变成一条线.我想要的是给图表下的区域一个渐变填充.它看起来有点像这样的彭博图;

示例图

我的问题实际上有三个部分;

  • 首先,我应该如何仅填充图表下方的区域?
  • 其次,如何用渐变填充它?
  • 最后,如果我在同一个图表上有多行,那么多行以下的任何区域都应该有一个灰度渐变填充,你会如何设置它?

我最大的问题是决定要使用的数据结构,我可以使用许多多边形状(每个线/数据系列一个),然后告诉画笔绘制;

  • 透明,如果它没有任何形状
  • 一个系列的颜色,如果它是一个形状(Alpha相对于高度给出毕业)
  • 黑色,如果它有多种形状(相对于高度的Alpha,以给出grad)

然后我会用白色绘制形状的边界.

谢谢,

GAV

silverlight gradient graph

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

C相当于来自Java的Arrays.sort - qsort?(我如何找到其实施的性质)

我是C编程语言的新手,但我知道它的标准化程度与Java不同.

在执行算法运行时的比较时,为了保持分析公平,我需要调用类似于Java的Array.sort(int [])的方法.

void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
Run Code Online (Sandbox Code Playgroud)

似乎是我最好的选择,但我想知道如何找到我正在编译的C版本的后端实现.

如何找出我正在使用的实现?这取决于编译器还是包含?我正在运行我运行Ubuntu并使用gcc编译器,我的所有工具都是通过synaptic包管理器获得的,或者是默认安装的.

我希望这个问题有道理!

亲切的问候,

加文

c java sorting

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

Java - 是否有用于在String []中连接字符串的内置函数?

还是比这更好的方式?

String concat(String[] strings) {
  StringBuilder out = new StringBuilder();

  for(String next: strings) {
    out.append(next);
  }

  return out.toString();
}
Run Code Online (Sandbox Code Playgroud)

不用担心,如果没有,我觉得应该有一个内置?

java string concat

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

BlackBerry - 屏幕中LabelField的水平对齐方式

我想添加一个新的LabelField(字符串标签,长样式),但如果我使用Field.FIELD_HCENTER作为我的样式,那么我得到以下对齐.

|---- This text is horizontally aligned but in ----|
|---- a block.
Run Code Online (Sandbox Code Playgroud)

但我想要的是;

|---- This text is horizontally aligned and ----|
|------- independently so for each line --------|
Run Code Online (Sandbox Code Playgroud)

这很简单吗?我无法找到该字段常量以使其适用于我.

提前致谢,

GAV

user-interface label blackberry text-alignment

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

使用C++加密存储到磁盘的对象(适用于Java开发人员)

这是两个问题,但对C++开发人员来说无疑是微不足道的.

  1. 如何对一个对象进行seralize以便我可以将它写入磁盘并稍后在C++中检索它,或者如果这是错误的关键字,我如何将对象写为二进制流并在以后重新创建它?我可以使用继承来创建可序列化的类的层次结构吗?
  2. 考虑到我有加密密钥,加密/解密二进制数据流的最简单方法是什么?

    const vector&encryption_key

这是一个概念证明,因此加密的强度或可靠性不如简单易懂的代码重要.

我可以根据需要扩展问题的任何一部分,因为您可能已经猜到我需要将一些数据保存到文件中的硬盘中,然后在另一次运行的应用程序中检索它,文件很大,这是我的方式缓存通过网络检索的数据.

谢谢,

GAV

c++ encryption serialization caching

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