我想近似e x函数.
是否可以使用基于样条类型的多种方法来实现?之间即X 1和X 2,然后
y 1 = 1 x + b 1,x 2和x 3之间,
然后
y 2 = a 2 x + b 2
等等
这适用于专用的fpga硬件,而不是通用CPU.因此我需要自己创建这个功能.准确性不是一个问题.此外,我实际上不能提供多个乘法电路和/或多个移位/加法器.另外,我想要比CORDIC功能小得多的东西,实际上尺寸很重要.
我正在寻找一个快速的方式做81号的部分排序 - 理想的情况下我期待提取最低16个值(它不是必需的16是在绝对正确的顺序).
这样做的目标是在FPGA专用硬件 - 所以这个稍微复杂的问题,因为我想要的结果执行的面积尽可能小.我看了看,并实施了奇偶合并排序算法,但我的理想在寻找什么,可能是我的需求更有效的(贸易算法实现大小的部分排序,以便给予最低16,不一定而不是一个完整的)
任何建议都会非常受欢迎
非常感谢
我正在尝试找到一个二维数组,表示3d数组中第三维的最小值
a = floor(rand(10,10,3).*100); % representative structure
b = min(a,[],3); % this finds the minimum but also includes 0
Run Code Online (Sandbox Code Playgroud)
我试过用:
min(a(a>0),3)
Run Code Online (Sandbox Code Playgroud)
但这不正确?我想我可以对a的第三维进行排序,然后在1:depth-1中找到最小值 - 但这似乎不是最有效的方法吗?
有什么想法吗?
我正在研究一些用于白平衡操作的图像处理算法.看起来像之前的Stackoverflow 问题很好地回答了自动白平衡算法的问题.
然而,我想知道如何从一个温度转换到另一个温度,即做出假设(并且它是一个很大的假设)白平衡算法可以采用处理过的图像(例如JPEG等)并将整体温度放在6500的场景中,你会如何在算法上"冷却"或"温暖"场景到特定的温度?这将是图像编辑程序中的常见操作,虽然这些操作通常在没有应用处理的RAW图像上操作(颜色空间操纵或其他) - 在RAW文件的情况下 - 也许单个RAW文件包含足够的信息(在文件头)关于相机传感器的颜色校准,使特定的温度变换更具确定性?
任何输入赞赏 - 谢谢!
我有一个简单的问题,我正在寻找Matlab中的快速实现.我有一系列的值,让我们说:
a = floor(rand(5,5).*255)
Run Code Online (Sandbox Code Playgroud)
然后我有一个类似大小的阈值数组,让我们说它是:
a_thresh = floor(rand(5,5).*255)
Run Code Online (Sandbox Code Playgroud)
对于其中的值,a如果它们比a_thresh我希望输出为0 的相应值小0.5倍- 同样对于1.2x,值a_thresh也应该设置为零,即:
a(a < a_thresh.*0.4) = 0
a(a > a_thresh.*1.2) = 0
Run Code Online (Sandbox Code Playgroud)
对于0.4x和0.5x以及1.0x和1.2x之间的值,我想要一个比例量,否则在0.5和1.0之间我想要使用a未改变的值.我以为我可以使用以下内容:
a(a>= a_thresh .* 0.4 && a <a_thresh.* 0.5) = ((a - a_thresh.*0.4)/(a_thresh.*0.5 a_thresh.*0.4)) .* a;
Run Code Online (Sandbox Code Playgroud)
但是,我收到的错误是:
操作数为|| 和&&操作必须可转换为逻辑标量值
关于如何解决这个问题的任何建议?显然我可以使用循环来做到这一点,这将是微不足道的,但我想保持代码矢量化.
我有以下数据:
A = [a0 a1 a2 a3 a4 a5 .... a24]
B = [b0 b1 b2 b3 b4 b5 .... b24]
Run Code Online (Sandbox Code Playgroud)
然后,我想要乘以如下:
C = A * B' = [a0b0 a1b1 a2b2 ... a24b24]
Run Code Online (Sandbox Code Playgroud)
这显然涉及25次乘法.
但是,在我的场景中,每个"循环迭代"只有5个新值被移入A(并且5个旧值从A移出).有没有快速的方法来利用数据通过A转移而不是全新的事实?理想情况下,我希望最小化乘法运算的数量(可能需要更多的加法/减法/累加).我最初认为收缩压阵列可能有所帮助,但它没有(我想!?)
更新1:注意B长期固定,但可以重新编程.
更新2:A的移位如下:a [24] <= a [19],a [23] <= a [18] ... a [1] <= new01,a [0] <= new00.依此类推每个时钟周期
非常感谢!
我正在尝试将大文本文件(几百万行)读入Matlab.最初我使用的是importdata(file_name),这似乎是一个简洁的解决方案.但是我需要使用Matlab 7(是的,我知道它的旧版本),似乎不支持importdata.因此我尝试了以下方法:
while ~feof(fid)
fline = fgetl(fid);
fdata{1,lno} = fline ;
lno = lno + 1;
end
Run Code Online (Sandbox Code Playgroud)
但这真的很慢.我猜它是因为它在每次迭代时调整数组大小.有没有更好的方法来做到这一点.请记住,输入数据的前20行是字符串类型数据,其余数据是3到6列十六进制值.
嗨所有我试图除以无符号常数除以仅使用移位和加/减 - 如果它是乘法我没有问题,但我有点被分裂困扰.
例如,假设常数除数为192,可以说红利为8000
"完整结果"y = 8000/192 = 41(假设我没有保留小数位)
y = 8000 >> 8 ... 31 y = 8000 >> 7 ... 62
但是,我如何获得更准确的解决方案?
非常感谢!
我正在实现一种算法(在OpenCV中),它迭代图像中的每个像素,并且对于每个像素计算块与邻域中的像素匹配,以便消除这些相邻像素的相似性.具有非常深的循环的"天真"实现非常慢,所以我想知道如何尝试提高性能.以下是我当前代码的摘录:
for(nCh=1;nCh<=channels;nCh++) { // Loop over three channels
for(i=0;i<h;i++) { // "vertical" loop
for(j=0;j<w;j++) { // "horizontal" loop
for (si=-sw_height; si<sw_height; si++){ // vertical search window loop
for (sj=-sw_width; sj<sw_width; sj++){ // horizontal search window loop
dist = 0;
for (blki=0; blki<blk_height; blki++){ // block match loop
for (blkj=0; blkj<blk_width; blkj++){ // block match loop
current_pxl = data[(i+blki)*step+(j+blkj)*channels+nCh];
search_pxl = data[(i+blki+si)*step+(j+blkj+sj)*channels+nCh];
dist += pow((current_pxl - search_pxl),2);
}
}
// ... further processing
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我最近从PC转移到MacBook Pro.我开始学习Objective-C的教程并在Cocoa中进行开发.我在我的日常工作中做了很多图像处理算法开发工作(逐像素操作),所以我想为OS X创建一个或两个测试图像处理应用程序.我很难弄清楚从哪里开始 - 假设我想创建一个简单的应用程序(我可以重用),如下所示:
任何指针或链接都将非常受欢迎.
谢谢
其他信息:
我对Linux中的OpenCV非常熟悉 - 但是还没有考虑在Objective-C/Cocoa/Xcode环境中使用它 - 甚至不确定这是不是一个好主意?
我想使用GPU加速也会很好,但我不熟悉OpenGL/OpenCL - 所以我可能不得不暂时把它放在长手指上.
我想优化下面的代码,这只是一个矩阵乘法 - 我确信这可以在不使用循环的情况下完成 - 但我似乎无法将其弄好.
k = [ 76 150 29; ...
-44 -85 128; ...
128 -108 -21];
for i = 1:size(rgb,1)
for j = 1:size(rgb,2)
triplet(1:3) = rgb(i,j,:);
yuv(i,j,:) = single(triplet) * single(k');
yuv(i,j,:) = fix(yuv(i,j,:) ./ 256);
end
end
Run Code Online (Sandbox Code Playgroud)
有什么想法或建议吗?
对于那些具有图像处理背景的人来说,你会发现上面的代码只是一个RGB到YUV的转换 - 你可能会问我为什么不使用内置rgb2ycbcr函数 - 但是在这种情况下我想使用如上所述的8位转换系数.
matlab ×5
fpga ×3
math ×2
optimization ×2
verilog ×2
vhdl ×2
algorithm ×1
asic ×1
assembly ×1
cocoa ×1
file ×1
hardware ×1
io ×1
macos ×1
objective-c ×1
opencv ×1
performance ×1
photography ×1
sorting ×1