- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Haskell 图像处理包 HIP 将滤镜添加到图像中,我能够使用 ByteString 读取图像使用 HIP 将图像打包并转换为 Image VS YCbCr Word8
类型。现在,如何从 Image VS YCbCr Word8
转换为 Border (Pixel cs e)
或 Pixel cs e
?我仍在学习 Haskell 所以请保持简单。请参阅下面的代码:
addFilterJpg :: FilePath -> IO ()
addFilterJpg fc = do
case validPath fc of
Left err -> putStrLn err
Right img -> do
case readImage img of
Left err -> putStrLn err
Right img -> do
-- convert img::(Image VS YCbCr Word8) to Border (Pixel cs e)
-- apply filter
-- save image
putStrLn "Convolution Filter"
最佳答案
您的问题有几个问题:
validPath
的声明功能。我假设它会进行一些文件路径验证,所以我会在答案中忽略它。readImage
是 IO
Action ,因此你不能只在 Either
上进行模式匹配,你需要先执行它。一些更多图像特定备注:
applyFilterJpg :: FilePath -> FilePath -> IO ()
applyFilterJpg fcin fcout = do
eImg <- readImageExact JPG fcin
case eImg of
Left err -> putStrLn err
Right img -> do
let imgRGB :: Image VS RGB Double
imgRGB = convert (img :: Image VS YCbCr Word8)
gaussianBlurKernel :: Image VS X Double
gaussianBlurKernel = fromLists $ [ [ 1/16, 1/8, 1/16 ]
, [ 1/8, 1/4, 1/8 ]
, [ 1/16, 1/8, 1/16 ] ]
convRGB = convolve Edge gaussianBlurKernel imgRGB
writeImage fcout convRGB
这是我们运行时得到的结果:
话虽这么说,已经有内置的函数可以为您简化整个过程:
addFilterJpg' :: FilePath -> FilePath -> IO ()
addFilterJpg' fcin fcout = do
imgRGB <- readImageRGB VS fcin
let convRGB = applyFilter (gaussianBlur 1) imgRGB
writeImage fcout convRGB
这是上述函数的结果:
关于 haskell HIP : Apply Filter to an Image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61977364/
我正在尝试使用 Haskell 图像处理包 HIP 将滤镜添加到图像中,我能够使用 ByteString 读取图像使用 HIP 将图像打包并转换为 Image VS YCbCr Word8 类型。现在
我有兴趣在我的 Ryzen 3400g 系统上运行深度学习代码。我在网上看到: I trying to use Vega 11 on my Ryzen 3400G, I'm aware that I
HIP是对应NVIDIA的CUDA的AMD GPU编程模型。我有一个 code snippet来 self 无法完全理解的 HIP 源代码。提醒一下,理解以下代码片段不需要任何 HIP 背景知识,但更
有什么方法可以将 Node.js 脚本编译为 native 代码,就像 Hip-Hop 对 PHP 所做的那样? 我不是在谈论库/api。 最佳答案 Node.js 使用 Google 的 V8 ja
我是这个库的新手,我想要一种操作(例如)Pixel RGB Double 的方法,例如: p 我知道减法或总和会影响整个 RGB pixel p = p + 1 有没有办法单独操作红色,蓝色或绿色
目前我正在阅读 Steven Skiena 撰写的算法设计手册,第 2 版,我偶然发现了一个问题。 在第 2 章中,他解释了算法分析,其中包括 Big Oh 表示法,我不明白他对停下来思考:Hip t
我注意到 torch.device可以接受一系列参数,确切地说是 cpu , cuda , mkldnn , opengl , opencl , ideep , hip , msnpu . 然而,在训
我是一名优秀的程序员,十分优秀!