日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PowerShell实现读取照片并做灰度处理

發布時間:2025/3/8 编程问答 36 如意码农
生活随笔 收集整理的這篇文章主要介紹了 PowerShell实现读取照片并做灰度处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Powershell一直是我的學習目標。做一個小例子。PowerShell實現讀取照片并做灰度處理。還想要保存這張灰度照片并直接打開查看。

分析需求:

【讀取照片】  需要借助.net framework中的程序集 System.Drawing

【灰度處理】  需要做圖像處理----灰度處理,需要重新計算每個像素信息,使用灰階轉換公式  L = 0.299*R + 0.587*G + 0.114*B

【保存照片】  同樣需要System.Drawing程序集

【打開文件】  使用  Invoke-Item  命令  或者 

設計腳本:

Add-Type -AssemblyName System.Drawing

# 定義根目錄下的圖片路徑(假設文件名為 input.jpg)
$inputPath = Join-Path $PSScriptRoot "input.jpg"
$outputPath = Join-Path $PSScriptRoot "output.jpg" # 檢查輸入文件是否存在
if (-not (Test-Path $inputPath)) {
Write-Host "錯誤:根目錄下未找到 input.jpg 文件!"
exit
} try {
# 加載原始圖片
$originalImage = [System.Drawing.Bitmap]::FromFile($inputPath)
# 創建灰度圖像對象
$grayImage = New-Object System.Drawing.Bitmap($originalImage.Width, $originalImage.Height) # 遍歷每個像素進行灰度化處理
for ($x = 0; $x -lt $originalImage.Width; $x++) {
for ($y = 0; $y -lt $originalImage.Height; $y++) {
$pixel = $originalImage.GetPixel($x, $y)
# 計算灰度值(加權平均法)
$grayValue = [int](0.299 * $pixel.R + 0.587 * $pixel.G + 0.114 * $pixel.B)
$grayColor = [System.Drawing.Color]::FromArgb($grayValue, $grayValue, $grayValue)
$grayImage.SetPixel($x, $y, $grayColor)
}
} # 保存黑白圖片
$grayImage.Save($outputPath, [System.Drawing.Imaging.ImageFormat]::Jpeg)
Write-Host "已生成黑白圖片:$outputPath" # 使用默認程序展示圖片
Invoke-Item $outputPath
}
catch {
Write-Host "處理過程中發生錯誤:$_"
}
finally {
# 釋放資源
if ($originalImage) { $originalImage.Dispose() }
if ($grayImage) { $grayImage.Dispose() }
}

PS: ?

 $grayValue = [int](0.299 * $pixel.R + 0.587 * $pixel.G + 0.114 * $pixel.B)

其中,grayValue 是灰階值,R、G、B分別是紅色、綠色和藍色通道的值。這個公式是基于人眼對不同顏色敏感度的研究結果得出的。在這個公式中,綠色的權重最高,因為人眼對綠色最為敏感,其次是紅色,最后是藍色。這種權重分配在早期電視技術中被采納,以模擬人眼感知亮度的方式優化信號傳輸。

ok!   腳本運行后,會在其根目錄下生成 output.jpg 文件,系統會使用默認軟件打開該圖片文件,可看到最后效果。下面給出參考結果。

     

總結

以上是生活随笔為你收集整理的PowerShell实现读取照片并做灰度处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。