- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我运行以下代码时,最后一行会导致此错误:
error[E0308]: mismatched types
--> src\main.rs:25:13
|
25 | box_filter(&img, 5, 5);
| ^^^^ expected struct `ImageBuffer`, found enum `DynamicImage`
|
= note: expected reference `&ImageBuffer<Luma<u8>, Vec<u8>>`
found reference `&DynamicImage`
extern crate image;
extern crate imageproc;
use image::GenericImageView;
use imageproc::filter::box_filter;
fn main() {
println!("Hello, world!");
// Use the open function to load an image from a Path.
// `open` returns a `DynamicImage` on success.
// `unwrap` returns a `panic` when it receives a `None`.
let img = image::open(
"C:/Users/hp/Desktop/Multiprocessor real-time scheduling/Project2/data/aLIEz.jpg",
)
.unwrap();
// The dimensions method returns the images width and height.
println!("dimensions {:?}", img.dimensions());
// The color method returns the image's `ColorType`.
println!("{:?}", img.color());
// Write the contents of this image to the Writer in PNG format.
img.save(
"C:/Users/hp/Desktop/Multiprocessor real-time scheduling/Project2/data_output/test.png",
)
.unwrap();
box_filter(&img, 5, 5);
}
我不知道如何转换
DynamicImage
进入
ImageBuffer
这样我就可以应用过滤器。我看过
image 0.23.12
的文档依赖,但我不明白如何做到这一点。
最佳答案
image::open().unwrap()
结果为 image::DynamicImage
imageproc::filter::box_filter()
需要 image::GrayImage
image::DynamicImage
变成 image::GrayImage
使用to_luma8()
extern crate image;
extern crate imageproc;
use image::GenericImageView;
use imageproc::filter::box_filter;
fn main() {
let dynamic_image = image::open("path/here").unwrap();
let gray_image = dynamic_image.to_luma8();
let result = box_filter(&gray_image, 5, 5);
}
如果您需要
image::RgbImage
或
image::RgbaImage
然后调用
into_rgb8()
或
into_rgba8()
.然而
box_filter()
仅支持
image::GrayImage
.
关于image - 如何将 DynamicImage 转换为 ImageBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65240917/
我正在尝试旋转一个名为 pic 的 BufferImage 实例,当我尝试这样做时它会调整大小、倾斜和裁剪图像,任何让它正常工作的建议 public void rotate(double rads){
我是 Rust 新手,仍在学习中。我有点困惑为什么当我编译这段代码时它会失败。我在我的 Linux 开发机器上用 Cargo 构建它 extern crate image; extern crate
当我运行以下代码时,最后一行会导致此错误: error[E0308]: mismatched types --> src\main.rs:25:13 | 25 | box_filte
使用 image crate,我可以创建一个 ImageBuffer 然后放一个像素并保存它: let mut img = ImageBuffer::new(100, 100); img.put_pi
我目前正在开发一个在 Swift 中使用实时相机 View 的项目。我使用在 GitHub 上找到的一些代码来提供实时摄像头 View ,它在我运行 Mojave 的 MacBook Pro 上运行良
我正在使用 Piston 的 image crate,代码如下: use image::{Rgb, ImageBuffer, Pixel}; let image = Vec::>::new(); le
我正在尝试保存 ImageBuffer到一个文件,但我在让类型达成一致时遇到了一些麻烦: extern crate image; use image::{ImageBuffer, Pixel, Rgb
我正在使用 image用于图片处理的 crate ,并希望创建一个小包装器以使我的代码更漂亮。 extern crate image; const BLACK: [u8; 4] = [0, 0, 0,
'CMSampleBufferGetImageBuffer' has been replaced by property 'CMSampleBuffer.imageBuffer' CMSampleBu
我正在尝试在 Swift (macOS) 中使用 VideoToolbox API 解码原始 H264 流。 在 viewDidLoad() 中,我设置了显示层和 CMTimeBase: self.v
由于某些原因,使用 ImageBuffer 和 ImageIO 打开一些 PNG 文件不起作用。这是我正在使用的一些代码,可以很好地调整/裁剪 JPG: BufferedImage image = I
我目前正在使用 ImageBuffer/ImageIO。它在 Windows 上工作得很好,但由于某种原因,它在 Linux 上无法处理 PNG 文件。我不知道为什么。 我想我只需要使用另一个库。因为
我是一名优秀的程序员,十分优秀!