标签: dwt

openCV中的小波变换

有人试图在opencv或C++中实现DWT吗?我看到关于这个主题的老帖子,我发现它们对我没用,因为我需要一个近似系数和细节作为小波变换的结果.

我试图将这个(http://wavelet2d.sourceforge.net/)添加到我的项目中,但它没有按计划运行.

这很简单,因为参数我需要近似系数和细节:

void haar1(float *vec, int n, int w)
{
int i=0;
float *vecp = new float[n];
for(i=0;i<n;i++)
    vecp[i] = 0;

    w/=2;
    for(i=0;i<w;i++)
    {
        vecp[i] = (vec[2*i] + vec[2*i+1])/sqrt(2.0);
        vecp[i+w] = (vec[2*i] - vec[2*i+1])/sqrt(2.0);
    }

    for(i=0;i<(w*2);i++)
            vec[i] = vecp[i];

        delete [] vecp;
}
void haar2(float **matrix, int rows, int cols)
{
    float *temp_row = new float[cols];
    float *temp_col = new float[rows];

    int i=0,j=0;
    int w = cols, h=rows;
while(w>1 || h>1)
{
    if(w>1)
    {
        for(i=0;i<h;i++)
        {
            for(j=0;j<cols;j++) …
Run Code Online (Sandbox Code Playgroud)

c++ opencv dwt haar-wavelet

18
推荐指数
2
解决办法
3万
查看次数

Dreamweaver模板中的循环和TemplateRepeatIndex

我在访问变量方面遇到了一些麻烦,在本例中为Setvariable.当我进入循环内部时,变量不存在.任何人都对此有任何见解.感谢您的帮助

下面是模板中的代码部分.当你有机会时,请你帮忙吗?谢谢.

<!-- TemplateBeginRepeat name="Component.Fields.section" -->
@@SetVariable("columnSectionIndex", "${TemplateRepeatIndex}")@@
Inline Value @@GetVariable("columnSectionIndex")@@       Variable value can be accessed
    <!-- TemplateBeginRepeat name ="Field.links" -->
      Inside Loop Value @@GetVariable("columnSectionIndex")@@  //Not getting declared           variable //value here. Says variable doesn’t exist in ContextVariables.
       <!-- TemplateBeginRepeat name ="Field.linkimages" -->
       <!-- TemplateEndRepeat -->
    <!-- TemplateEndRepeat -->
<!-- TemplateEndRepeat -->
Run Code Online (Sandbox Code Playgroud)

产量

Variable Added Successfully
Inline Value 0 
Inside Loop Value Variable doesn't exist 
Run Code Online (Sandbox Code Playgroud)

我的dwt代码

[TemplateCallable()]
public string SetVariable(string variableName, string value)
    {
        //Remove the old variable and set the …
Run Code Online (Sandbox Code Playgroud)

dreamweaver dreamweaver-templates dwt tridion

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

如何将DWT用于LSB替代隐写术

在隐写术中,最低有效位(LSB)替换方法将秘密位嵌入来自覆盖介质的位的位置,例如图像像素.在一些方法中,采用图像的离散小波变换(DWT)并且将秘密比特嵌入DWT系数中,之后使用逆变换来重建隐秘图像.

但是,DWT产生浮点系数,对于LSB替换方法,需要整数值.我读过的大多数论文都使用2D Haar Wavelet,但他们的方法并不清楚.我已经看到变换是根据低通和高通滤波器(浮点变换)定义的,或者是取对值的和与差,或者平均值和平均值之差等.

更明确地,无论是正向变换还是反向变换(但不一定取决于所使用的公式),最终将出现浮点数.我不能将它们用于系数,因为替换不起作用,我不能将它们用于重建的像素,因为图像需要整数值来存储.

例如,让我们考虑一对像素,AB作为一维数组.低频系数由和,即s = A + B高频系数和差值定义,即d = A - B.然后我们可以用B = (s - d) / 2和重建原始像素A = s - B.然而,在任何与系数混合的位之后,s - d可能不再是偶数,并且浮点值将出现用于重建的像素.

对于2D情况,1D变换分别应用于行和列,因此最终会在某处出现4除法.这可能导致具有浮动余数.00,.25,.50和.75的值.我只遇到过一篇解决这个问题的论文.其余的方法都很模糊,我很难复制它们.然而,DWT已经广泛用于图像隐写术.

我的问题是,既然我读过的一些文献没有启发,那怎么可能呢?如何使用引入浮点值的变换,但整个隐写方法需要整数?

steganography dwt haar-wavelet wavelet-transform

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

离散小波变换整数Daub 5/3提升问题

我试图在lena的图像上运行整数到整数提升5/3.我一直在跟随Walker,Nguyen和Chen(截至2015年10月7日的Link活动)的文章"用于基于小波的图像压缩的低功耗低内存系统" .

我遇到了问题.图像看起来似乎并不完全正确.我似乎在绿色和蓝色通道中略微溢出,这意味着小波函数的后续通过找到了不应该有的高频率.当我在高频部分的边缘看到s0图像的一行时,我也很确定我得到了其他错误.

我的功能如下:

bool PerformHorizontal( Col24* pPixelsIn, Col24* pPixelsOut, int width, int pixelPitch, int height )
{
    const int widthDiv2 = width / 2;
    int y   = 0;
    while( y < height )
    {
        int x = 0;
        while( x < width )
        {
            const int n     = (x)       + (y * pixelPitch);
            const int n2    = (x / 2)   + (y * pixelPitch);

            const int s     = n2;
            const int d     = n2 + widthDiv2;

            // …
Run Code Online (Sandbox Code Playgroud)

c++ wavelet dwt

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

Hijri(波斯日历)DwtCalendar.js

是一个DHTML Gregorian日历小部件.我正在尝试制作一个Hijri(波斯日历 - Jalali)小部件.有没有人有任何想法?

javascript calendar zimbra dwt hijri

5
推荐指数
2
解决办法
3742
查看次数

如何使用Python计算图像的能量?

我正在尝试计算图像的能量。我想使用Python。我从网站上得到了一个解决方案,但有点令人困惑的是,发布问题的人告诉我,与 Matlab 相比,他的程序的输出是错误的。

我提到了这个链接, 我已经尝试了这两个代码,但给出了相同的答案。

import cv2
from pywt import dwt2
import pywt
import numpy as np
img=cv2.imread("/home/raviraj/PycharmProjects/Diabetic/SYMPTOMS/1369_right.jpeg")
im = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, (cH, cV, cD) = dwt2(im.T, 'db1')
# a - LL, h - LH, v - HL, d - HH as in matlab
Energy = (cH**2 + cV**2 + cD**2).sum()/im.size

print(Energy)
Run Code Online (Sandbox Code Playgroud)

此代码给出输出 0.5311041623967175 ,下一个代码是

im = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
m,n = im.shape
print(im.shape)
print(m)
print(n)
cA, (cH, cV, cD) = pywt.dwt2(im,'db1')
# a - LL, h - LH, v - …
Run Code Online (Sandbox Code Playgroud)

python opencv dwt pywt

5
推荐指数
0
解决办法
3667
查看次数

将Tridion组件转储为XML

使用模块化模板将Tridion组件内容(基于给定模式,即:非任意)转储到XML中的最简单方法是什么?

具体来说,需要将组件的内容传递给/作为ASP.Net自定义控件,即:

<custom:MyControl runat="server"
    TextField="value1"..>
  <EmbeddedField>
    ..
  </EmbeddedField>
</custom:MyControl>
Run Code Online (Sandbox Code Playgroud)

我看到一种可能的方法是调整Default Dreamweaver组件设计 DWT TBB,但这似乎太费力了.

编辑

另一个模糊的主题是上面问题的第二部分:将XML嵌入到ASP.Net控制标记中.问题是需要转义XML.下面的脑力激荡器在DWT中进行(压力,Nuno的TBB写入输出):

<custom:MyControl runat="server">
    <xml>
        @@(Output).replace(RegExp.call(null, /&/.toString()[1], "g"), '&').replace(RegExp.call(null, /</.toString()[1], "g"), '<').replace(RegExp.call(null, />/.toString()[1], "g"), '>').replace(RegExp.call(null, String.fromCharCode(34), "g"), '"')@@
    </xml>
</custom:MyControl>
Run Code Online (Sandbox Code Playgroud)

(所有这些只是克服DWT神秘的JS转义规则所必需的.)

dwt tridion tridion-2011

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

如何将pyWavelet和openCV结合起来进行图像处理?

我需要在python中进行图像处理.我想使用小波变换作为滤波器组.任何人都可以建议我应该使用哪个库?我安装了pywavelet,但我不知道如何将它与opencv结合起来.如果我使用wavedec2命令,它会引发ValueError("预期的2D输入数据.")

谁能帮我?

python opencv image-processing dwt

3
推荐指数
2
解决办法
7988
查看次数

如何在python中非规范化图像?

我正在做一个项目,我必须首先将图像标准化为 [0,1],然后在处理后对图像执行 dwt 和 idwt。所以首先我将图像转换为数组然后我用这个代码对其进行标准化

def normalization (array):    
    maxs = max([max(l) for l in array])
    mins = min([min(l) for l in array])
    range = max - mins
    A = []
    for x in array:
        m = [(float(xi) - mins)/range for xi in x]
        A.append(m)    
    return A
Run Code Online (Sandbox Code Playgroud)

代码运行良好,现在我不知道如何将其非规范化回实际范围。有人可以帮忙吗?

python image-processing normalization dwt

3
推荐指数
2
解决办法
3711
查看次数

在Dreamweaver模板中访问包变量时出现问题

我在访问页面模板的DWT中的包变量时遇到了问题.

我有一个4 TBB的复合页面模板如下:

1)常量TBB - 该TBB将组件的所有值(嵌入式多值组件)读取为键值对,并将它们推送到包中.例如:

Item item = this._package.CreateStringItem(contentType, "test");
this._package.PushItem("key", item);
Run Code Online (Sandbox Code Playgroud)

2)页面模板的C#DLL - 包含页面模板的逻辑

3)页面模板的DWT - 此处输出所有包变量.

4)默认完成操作

我面临的问题如下:

在我的DWT中,我想比较Component Component模板的元数据和Constant TBB中设置的包变量.

我使用的语法是:

<!-- TemplateBeginIf cond="ComponentTemplate.Metadata.section_name = key" -->
Run Code Online (Sandbox Code Playgroud)

其中key是在常量TBB中设置的包名称,其值为"test"

但不知何故,这个包变量"key"给出的值为0而不是测试.

有人能让我知道我哪里错了.

dwt tridion tridion-2011

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

离散小波变换Matlab

我正在尝试使用Matlab小波工具箱中提供的函数来创建图像的多级离散小波分解,提取系数,操纵它们,并将它们重新组合回图像.

我尝试使用了许多功能,但它们似乎都不能满足我的需要.这些是执行此操作的步骤.

  1. 使用wavedec2将图像分解为[C,S]. [C,S] = wavedec2(X,N,Lo_D,Hi_D)

  2. 然后我必须使用detcoef2从[C,S]中提取细节系数.[C,S]是'小波分解结构',它不代表实际系数,如cD,cH,cV. [H,V,D] = detcoef2('all',C,S,N)

  3. 操纵数据

  4. 重建[C,S] ???? 没有功能这样做.

  5. 使用waverec2重新构图原始图像. X = waverec2(C,S,Lo_R,Hi_R)

问题出在第4步.没有重新创建[C,S]的函数,我无法调用函数waverec2,因为它需要C和S的操作版本.

我不需要wavedec2和waverec2吗?也许我应该使用detcoef2和upcoef2?

有一些DWT经验的人可以在一分钟内解决这个问题,我对它很新.

谢谢

matlab image-processing wavelet dwt

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