有人试图在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) 我在访问变量方面遇到了一些麻烦,在本例中为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) 在隐写术中,最低有效位(LSB)替换方法将秘密位嵌入来自覆盖介质的位的位置,例如图像像素.在一些方法中,采用图像的离散小波变换(DWT)并且将秘密比特嵌入DWT系数中,之后使用逆变换来重建隐秘图像.
但是,DWT产生浮点系数,对于LSB替换方法,需要整数值.我读过的大多数论文都使用2D Haar Wavelet,但他们的方法并不清楚.我已经看到变换是根据低通和高通滤波器(浮点变换)定义的,或者是取对值的和与差,或者平均值和平均值之差等.
更明确地,无论是正向变换还是反向变换(但不一定取决于所使用的公式),最终将出现浮点数.我不能将它们用于系数,因为替换不起作用,我不能将它们用于重建的像素,因为图像需要整数值来存储.
例如,让我们考虑一对像素,A
并B
作为一维数组.低频系数由和,即s = A + B
高频系数和差值定义,即d = A - B
.然后我们可以用B = (s - d) / 2
和重建原始像素A = s - B
.然而,在任何与系数混合的位之后,s - d
可能不再是偶数,并且浮点值将出现用于重建的像素.
对于2D情况,1D变换分别应用于行和列,因此最终会在某处出现4除法.这可能导致具有浮动余数.00,.25,.50和.75的值.我只遇到过一篇解决这个问题的论文.其余的方法都很模糊,我很难复制它们.然而,DWT已经广泛用于图像隐写术.
我的问题是,既然我读过的一些文献没有启发,那怎么可能呢?如何使用引入浮点值的变换,但整个隐写方法需要整数?
我试图在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) 这是一个DHTML Gregorian日历小部件.我正在尝试制作一个Hijri(波斯日历 - Jalali)小部件.有没有人有任何想法?
我正在尝试计算图像的能量。我想使用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) 使用模块化模板将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转义规则所必需的.)
我需要在python中进行图像处理.我想使用小波变换作为滤波器组.任何人都可以建议我应该使用哪个库?我安装了pywavelet,但我不知道如何将它与opencv结合起来.如果我使用wavedec2命令,它会引发ValueError("预期的2D输入数据.")
谁能帮我?
我正在做一个项目,我必须首先将图像标准化为 [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)
代码运行良好,现在我不知道如何将其非规范化回实际范围。有人可以帮忙吗?
我在访问页面模板的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而不是测试.
有人能让我知道我哪里错了.
我正在尝试使用Matlab小波工具箱中提供的函数来创建图像的多级离散小波分解,提取系数,操纵它们,并将它们重新组合回图像.
我尝试使用了许多功能,但它们似乎都不能满足我的需要.这些是执行此操作的步骤.
使用wavedec2将图像分解为[C,S].
[C,S] = wavedec2(X,N,Lo_D,Hi_D)
然后我必须使用detcoef2从[C,S]中提取细节系数.[C,S]是'小波分解结构',它不代表实际系数,如cD,cH,cV.
[H,V,D] = detcoef2('all',C,S,N)
操纵数据
重建[C,S] ???? 没有功能这样做.
使用waverec2重新构图原始图像.
X = waverec2(C,S,Lo_R,Hi_R)
问题出在第4步.没有重新创建[C,S]的函数,我无法调用函数waverec2,因为它需要C和S的操作版本.
我不需要wavedec2和waverec2吗?也许我应该使用detcoef2和upcoef2?
有一些DWT经验的人可以在一分钟内解决这个问题,我对它很新.
谢谢
dwt ×11
opencv ×3
python ×3
tridion ×3
c++ ×2
haar-wavelet ×2
tridion-2011 ×2
wavelet ×2
calendar ×1
dreamweaver ×1
hijri ×1
javascript ×1
matlab ×1
pywt ×1
zimbra ×1