AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

用Rust和OpenCV打造ASCII圖片

來(lái)源: 責(zé)編: 時(shí)間:2024-05-29 17:32:31 139觀(guān)看
導(dǎo)讀使用Rust和OpenCV的動(dòng)態(tài)組合,將任何舊圖片變成一個(gè)炙手可熱的ASCII藝術(shù)圖片。想象文字像像素一樣跳舞,在純文本的基礎(chǔ)上捕捉圖像的本質(zhì)。圖片OpenCV下載地址:https://opencv.org/releases/.創(chuàng)建一個(gè)Rust項(xiàng)目:cargo new im

使用Rust和OpenCV的動(dòng)態(tài)組合,將任何舊圖片變成一個(gè)炙手可熱的ASCII藝術(shù)圖片。想象文字像像素一樣跳舞,在純文本的基礎(chǔ)上捕捉圖像的本質(zhì)。hPR28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片hPR28資訊網(wǎng)——每日最新資訊28at.com

OpenCV下載地址:https://opencv.org/releases/.hPR28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建一個(gè)Rust項(xiàng)目:hPR28資訊網(wǎng)——每日最新資訊28at.com

cargo new img-to-ascii

hPR28資訊網(wǎng)——每日最新資訊28at.com

在Cargo.toml文件中,加入以下依賴(lài)項(xiàng):hPR28資訊網(wǎng)——每日最新資訊28at.com

[dependencies]opencv = "0.88.5"

hPR28資訊網(wǎng)——每日最新資訊28at.com

將下面的圖片存儲(chǔ)在項(xiàng)目的根目錄下:hPR28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片hPR28資訊網(wǎng)——每日最新資訊28at.com

第一步,讀取圖片,然后灰度化hPR28資訊網(wǎng)——每日最新資訊28at.com

use opencv::core;use opencv::imgcodecs;use opencv::imgproc;use opencv::prelude::*;use std::env;use std::fs::File;use std::io::Write;fn main() {    // 解析命令行參數(shù)    let args: Vec<String> = env::args().collect();    if args.len() < 2 {        println!("Usage: {} <image>", args[0]);        return;    }    // 讀取圖像文件    let image = imgcodecs::imread(args[1].as_str(), imgcodecs::IMREAD_COLOR).unwrap();    // 轉(zhuǎn)換為灰度    let mut gray_image = Mat::default();    imgproc::cvt_color(&image, &mut gray_image, imgproc::COLOR_BGR2GRAY, 0).unwrap();}

hPR28資訊網(wǎng)——每日最新資訊28at.com

這段代碼使用OpenCV讀取圖像并將其轉(zhuǎn)換為灰度,為我們的ASCII藝術(shù)創(chuàng)作奠定了基礎(chǔ)。hPR28資訊網(wǎng)——每日最新資訊28at.com

第二步,縮放和調(diào)整大小。hPR28資訊網(wǎng)——每日最新資訊28at.com

use opencv::core;use opencv::imgcodecs;use opencv::imgproc;use opencv::prelude::*;use std::env;use std::fs::File;use std::io::Write;fn main() {    ......    // 設(shè)置所需寬度或高度    let desired_width = 150;    let desired_height = 150;    // 在保持長(zhǎng)寬比的同時(shí)計(jì)算比例因子    let scale_w = desired_width as f64 / image.cols() as f64;    let scale_h = desired_height as f64 / image.rows() as f64;    let scale = scale_w.min(scale_h);    let new_width = (image.cols() as f64 * scale) as i32;    let new_height = (image.rows() as f64 * scale) as i32;    // 調(diào)整圖像大小    let mut resized = Mat::default();    imgproc::resize(        &gray_image,        &mut resized,        core::Size::new(new_width, new_height),        0.0,        0.0,        imgproc::INTER_LINEAR,    )    .unwrap();}

hPR28資訊網(wǎng)——每日最新資訊28at.com

在這里,我們要確保我們的ASCII圖片不會(huì)太壓扁或拉伸,通過(guò)代碼計(jì)算最佳比例因子并相應(yīng)地調(diào)整圖像的大小。hPR28資訊網(wǎng)——每日最新資訊28at.com

第三步,ASCII轉(zhuǎn)換。hPR28資訊網(wǎng)——每日最新資訊28at.com

use opencv::core;use opencv::imgcodecs;use opencv::imgproc;use opencv::prelude::*;use std::env;use std::fs::File;use std::io::Write;fn main() {    ......    // ASCII轉(zhuǎn)換    // 更多的字符表示更精細(xì)的細(xì)節(jié)    // <$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft///|()1{}[]?-_+~<>i!lI;:,/"^`'. >    let ascii_chars = " .,:;i1tfLCG08@";    let mut ascii_art = String::new();    for i in 0..resized.rows() {        for j in 0..resized.cols() {            let pixel = resized.at_2d::<u8>(i, j).unwrap();            let ascii_index = *pixel as usize * ascii_chars.len() / 256;            ascii_art.push(ascii_chars.chars().nth(ascii_index).unwrap_or(' '));        }        ascii_art.push('/n');    }}

hPR28資訊網(wǎng)——每日最新資訊28at.com

我們定義了一個(gè)ASCII字符的調(diào)色板,并將每個(gè)像素的強(qiáng)度映射到一個(gè)字符,從而創(chuàng)建了基于文本的圖像。hPR28資訊網(wǎng)——每日最新資訊28at.com

第四步,生成ASCII圖片。hPR28資訊網(wǎng)——每日最新資訊28at.com

use opencv::core;use opencv::imgcodecs;use opencv::imgproc;use opencv::prelude::*;use std::env;use std::fs::File;use std::io::Write;fn main() {    ......    // 保存ASCII圖像文件    let mut file = File::create(format!(        "{}.txt",        args[1].split('.').collect::<Vec<&str>>()[0]    ))    .unwrap();    file.write_all(ascii_art.as_bytes()).unwrap();    // 打印ASCII圖像到控制臺(tái)    println!("{}", ascii_art);    println!("Done!");}

hPR28資訊網(wǎng)——每日最新資訊28at.com

執(zhí)行以下命令運(yùn)行程序:hPR28資訊網(wǎng)——每日最新資訊28at.com

cargo run R.png

hPR28資訊網(wǎng)——每日最新資訊28at.com

最后,呈現(xiàn)了我們的ASCII美術(shù)作品,既將其保存為文本文件以供分享,也將其直接打印到控制臺(tái)以獲得即時(shí)滿(mǎn)足感。hPR28資訊網(wǎng)——每日最新資訊28at.com

hPR28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-91534-0.html用Rust和OpenCV打造ASCII圖片

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Spring 中如何控制 Bean 的加載順序?

下一篇: 打造高可用系統(tǒng):深入了解心跳檢測(cè)機(jī)制

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 天貓精靈Sound Pro體驗(yàn):智能音箱沒(méi)有音質(zhì)?來(lái)聽(tīng)聽(tīng)我的

    這幾年除了手機(jī)作為智能生活終端最主要的核心之外,第二個(gè)可以成為中心點(diǎn)的產(chǎn)品是什么?——是智能音箱。 手機(jī)在執(zhí)行命令的時(shí)候有兩種操作方式,手和智能語(yǔ)音助手,而智能音箱只
  • 6月安卓手機(jī)性能榜:vivo/iQOO霸占旗艦排行榜前三

    2023年上半年已經(jīng)正式過(guò)去了,我們也迎來(lái)了安兔兔V10版本,在新的驍龍8Gen3和天璣9300發(fā)布之前,性能榜的榜單大體會(huì)以驍龍8Gen2和天璣9200+為主,至于那顆3.36GHz的驍龍8Gen2領(lǐng)先
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現(xiàn)已正式出爐,冠軍是來(lái)自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從&ldquo;最美JK&rdquo;起到&ldquo;最美女星&r
  • 學(xué)習(xí)JavaScript的10個(gè)理由...

    作者 | Simplilearn編譯 | 王瑞平當(dāng)你決心學(xué)習(xí)一門(mén)語(yǔ)言的時(shí)候,很難選擇到底應(yīng)該學(xué)習(xí)哪一門(mén),常用的語(yǔ)言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 三分鐘白話(huà)RocketMQ系列—— 如何發(fā)送消息

    我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(chǔ)(消息堆積)、消費(fèi) 三大塊領(lǐng)域。那接下來(lái),我們白話(huà)一下,RocketMQ是如何發(fā)送消息的,揭秘消息生產(chǎn)全過(guò)程。注意,如果白話(huà)中不小心提到相關(guān)代
  • 大廠(chǎng)卷向扁平化

    來(lái)源:新熵作者丨南枝 編輯丨月見(jiàn)大廠(chǎng)職級(jí)不香了。俗話(huà)說(shuō),兵無(wú)常勢(shì),水無(wú)常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級(jí)體系并不稀奇。7月13日,淘寶天貓集團(tuán)啟動(dòng)了近年來(lái)最大的人力制度改革,目前已形成一
  • iQOO Neo8 Pro真機(jī)諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機(jī)型,不僅搭載了天璣9000+,而且是同價(jià)位唯一一款天璣9000+直屏旗艦,一經(jīng)上市便受到了用戶(hù)的廣泛關(guān)注。在時(shí)隔半年后,
  • 英特爾Xe-HP項(xiàng)目終止,將專(zhuān)注Xe-HPC/HPG系列顯卡

    據(jù)10 月 31 日消息報(bào)道,英特爾高級(jí)副總裁兼加速計(jì)算系統(tǒng)和圖形事業(yè)部總經(jīng)理 表示,Xe-HP“ Arctic Sound” 系列服務(wù)器 GPU 已經(jīng)應(yīng)用于 oneAPI devcloud 云服
  • 利用職權(quán)私自解除被封帳號(hào) Meta開(kāi)除20多名員工

    11月18日消息,據(jù)外媒援引知情人士表示,過(guò)去一年時(shí)間內(nèi),F(xiàn)acebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過(guò)內(nèi)部系統(tǒng)以不當(dāng)方式重置用戶(hù)帳號(hào),其
Top