js 循环之间的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 循环之间的区别相关的知识,希望对你有一定的参考价值。
参考技术A 可以使用break和continuebreak 跳出整个循环
continue 跳出当前循环
遍历数组中的每一项,没有返回值,对原数组没有影响
break 和 continue 都不可使用,会报错
return不会生效
可以使用break 和 continue
可以使用break 和 continue
可以用来遍历可迭代对象Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)
得到value值
不可以遍历普通对象
map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值
map方法不会改变原始数组
不会改变原数组,找到第一个符合条件的数据
查询数组中符合条件的第一个元素,如果没有符合条件的元素则返回undefined
不会改变原数组 ,会找到所有符合条件的数据
过滤数组元素,返回过滤后的数组,如果没有符合条件的元素则返回空数组
注意区分filter和find的区别
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
OpenCV Mat 问题:直方图和这个循环之间的区别
【中文标题】OpenCV Mat 问题:直方图和这个循环之间的区别【英文标题】:OpenCV Mat Problem: Difference between Histogram and this loop 【发布时间】:2019-05-24 16:40:27 【问题描述】:我正在从事图像处理项目,我想用 opencv(opencv 4.0 with cuda suport)在 cuda 上实现它,但我不擅长 c++。 对于两个图像之间的颜色校正,我正在使用此链接中的代码:(https://answers.opencv.org/question/178127/matching-colors-between-two-pictures-in-opencv/)
我的目标是在 GPU 上实现此代码。为此,我试图重写该代码。我遇到了两个问题:
1- 是否有任何 Cuda 实现的库用于此目的? (功能相同)
2-在重写函数((do1ChnHist))中,这个循环计算一维直方图(是真的吗?):
for (size_t p = 0; p<img.total(); p++)
if (mask(p) > 0)
uchar c = img(p);
h(c) += 1.0;
但我无法将其替换为:
int histSize = 256;
float range[] = 0, 256 ; //the upper boundary is exclusive
const float* histRange = range ;
bool uniform = false, accumulate = false;
calcHist(&img, 1, 0, Mat(), h, 1, &histSize, &histRange, uniform, accumulate);
或者用这个循环重写它(为了改变 Mat >> GpuMat 将来。不幸的是 Opencv_cuda 不支持 GpuMat_,因为我试图用 Mat 重写循环):
Mat h;
h = Mat::zeros(cv::Size(256, 1), CV_16U);
uchar x;
for (size_t m = 0; m < img.size().width; m++)
for (size_t n = 0; n < img.size().width; n++)
x = img.at<int>(Point(m, n));
h.at<int>(Point(int(x),0)) += 1;
因为两个选项的以太在 do1ChnHist 函数中从主循环返回不同的答案... 谢谢...
【问题讨论】:
【参考方案1】:Opencv 拥有你想要的所有功能
virtual void cv::cuda::TemplateMatching::match ( InputArray image,
InputArray templ,
OutputArray result,
Stream & stream = Stream::Null()
)
void cv::cuda::calcHist (InputArray src, OutputArray hist, Stream &stream=Stream::Null())
Calculates histogram for one channel 8-bit image. More...
void cv::cuda::calcHist (InputArray src, InputArray mask, OutputArray hist, Stream &stream=Stream::Null())
Calculates histogram for one channel 8-bit image confined in given mask. More...
取决于,可以是一维数组,也可以是二维数组,取决于颜色。你应该先学习一些基本的图像处理原理。
【讨论】:
感谢您的回答,但我帖子中的链接包含两个图像的颜色直方图匹配代码,而不是模板匹配。我不能使用 calchist,因为 calchist 从 do1ChnHist 函数的主循环返回不同的答案。如果我的帖子不够清晰,请原谅。谢谢以上是关于js 循环之间的区别的主要内容,如果未能解决你的问题,请参考以下文章