- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将并行性添加到将 .bmp 转换为灰度 .bmp 的程序中。我看到并行代码的性能通常会差 2-4 倍。我正在调整 parBuffer/分 block 大小,但似乎仍然无法推理。寻求指导。
这里使用的整个源文件:http://lpaste.net/106832
我们使用 Codec.BMP
读取由 type RGBA = (Word8, Word8, Word8, Word8)
表示的像素流。要转换为灰度,只需在所有像素上映射一个“luma”变换。
串行实现实际上是:
toGray :: [RGBA] -> [RGBA]
toGray x = map luma x
parList
。好家伙。该程序使用了约 4-5GB 内存,系统开始交换。
parBuffer
。这仍然没有产生理想的性能。 Spark 尺寸非常小。
parBuffer
来实现并行性:
toGrayPar :: [RGBA] -> [RGBA]
toGrayPar x = concat $ (withStrategy (parBuffer 500 rpar) . map (map luma))
(chunk 8000 x)
chunk :: Int -> [a] -> [[a]]
chunk n [] = []
chunk n xs = as : chunk n bs where
(as,bs) = splitAt (fromIntegral n) xs
18,934,235,760 bytes allocated in the heap
15,274,565,976 bytes copied during GC
639,588,840 bytes maximum residency (27 sample(s))
238,163,792 bytes maximum slop
1910 MB total memory in use (0 MB lost due to fragmentation)
Tot time (elapsed) Avg pause Max pause
Gen 0 35277 colls, 35277 par 19.62s 14.75s 0.0004s 0.0234s
Gen 1 27 colls, 26 par 13.47s 7.40s 0.2741s 0.5764s
Parallel GC work balance: 30.76% (serial 0%, perfect 100%)
TASKS: 6 (1 bound, 5 peak workers (5 total), using -N2)
SPARKS: 4480 (2240 converted, 0 overflowed, 0 dud, 2 GC'd, 2238 fizzled)
INIT time 0.00s ( 0.01s elapsed)
MUT time 14.31s ( 14.75s elapsed)
GC time 33.09s ( 22.15s elapsed)
EXIT time 0.01s ( 0.12s elapsed)
Total time 47.41s ( 37.02s elapsed)
Alloc rate 1,323,504,434 bytes per MUT second
Productivity 30.2% of total user, 38.7% of total elapsed
gc_alloc_block_sync: 7433188
whitehole_spin: 0
gen[0].sync: 0
gen[1].sync: 1017408
最佳答案
你有一个很大的 RGBA 像素列表。为什么不使用 parListChunk
具有合理的 block 大小?
关于haskell - 延迟 IO + 并行 : converting an image to grayscale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24545148/
我想使用 R 平均两个灰度图像(两个相同大小的 png 文件)。 以下面的图片为例: img1.png img2.png img3.png img1.png的平均值和 img2.png应该导致类似 i
我很喜欢使用来自 UIGraphicsImageRenderer 的新 API自 iOS 10 以来引入,但现在我想知道是否有可能获得灰度 Data来自其 pngData方法。 假设我有一个名为“ma
我正在使用我在另一个堆栈溢出问题中找到的着色器来以灰度渲染我的屏幕: import com.badlogic.gdx.graphics.glutils.ShaderProgram; public cl
我目前正在使用这个 Bootstrap 主题:http://startbootstrap.com/template-overviews/grayscale/我正在尝试更改导航栏的颜色。我讨厌 CSS,
我正在尝试在 John Zelle 的“Python 编程:计算机科学导论”中做一个练习。我为他的书下载了一个特殊的图形包( graphics.py ,在链接的网站上)。题目如下: 编写一个程序,将彩
我有疑问。当我从 Android 中的 Bitmap 获取像素时。我在里面加载了一张图片,这张图片是灰度图。如果我创建一个 getPixels() 并检查值,我可以看到 R != G != B 的值。
这个问题在这里已经有了答案: Convert a Bitmap to GrayScale in Android (5 个回答) 关闭8年前。 我正在尝试使用红色、绿色、蓝色的平均值将彩色图像转换为灰度
我正在使用 jQuery 插件 Waypoints当用户滚动一组图像时为它们设置动画。我想要实现的效果是,当用户滚动上述图像时,以下 css 会附加到对象 - opacity:1 和 filter:g
我正在做一项作业,要求我们开发一个程序,对具有不同过滤器尺寸 3x3、5x5...11x11 的灰度图像执行平均过滤器 首先我用 Java 开发了一个矩阵类: final public class M
我有一个绘图应用程序,它由一个带有灰度背景图像的容器组成,在它上面有另一个图像(相同但不是灰度图像)。 当我在图像上绘制时,我会删除绘制的位置或转为灰度(以在背景中再现图像)。 我怎样才能做到这一点?
我知道这个问题可以问专家,但我想在 openCV 中访问灰度图像的像素。我正在使用以下代码: cv::Mat img1 = cv::imread("bauckhage.jpg", CV_LOAD_IM
我正在尝试将并行性添加到将 .bmp 转换为灰度 .bmp 的程序中。我看到并行代码的性能通常会差 2-4 倍。我正在调整 parBuffer/分 block 大小,但似乎仍然无法推理。寻求指导。 这
我正在尝试熟悉 OpenCV2 以进行基本的图像和视频处理。现在我无法保存灰度视频帧。以下代码(改编自 here )旨在保存我拍摄的凯旋门 ( arc.avi ) 的 6 秒视频的三个版本 - 一个未
我有一个 HTML5 canvas 元素,用户可以在其中动态移动、调整大小和旋转彩色照片。 我希望用户能够在灰度和颜色之间切换。 我可以想到两种方法,但都不理想: 1) 在每次调整大小和旋转事件(每秒
我在整个互联网上搜索过,但没有找到任何解决方案。 谁能说出 css3 的替代品是什么 filter和 transistion3d在 IE 11 和 IE 12 中? 我不想使用任何插件。 不适用于 S
我在图像上使用 filter:grayscale(1)。图像的容器也有伪 :after 应用背景颜色设置为 mix-blend-mode:screen。似乎一切正常,但在 Safari iOS 上除外
这是我的代码。这很简单。 Mat image = imread("filename.png"); imshow("image", image); waitKey(); //Image looks g
我想在我的应用中实现自定义相机。所以,我正在使用 AVCaptureDevice 创建这个相机。 现在我只想在我的自定义相机中显示灰色输出。因此,我尝试使用 setWhiteBalanceModeLo
我正在尝试使用 SwiftUI 将图像转换为全灰度,并且正在使用 .grayscale() . 文档说明了此方法的以下内容: The intensity of grayscale to apply.
Site in question 我正在尝试使用以下函数将使用 d3.select 附加的所有 svg:images 转换为灰度: js: function convert() { d
我是一名优秀的程序员,十分优秀!