Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

scikit-learn สามารถใช้แปลงรูปภาพจาก RGB เป็นระดับสีเทาใน Python ได้อย่างไร


Scikit-learn หรือที่เรียกกันทั่วไปว่า sklearn เป็นไลบรารี่ใน Python ที่ใช้สำหรับวัตถุประสงค์ในการใช้อัลกอริธึมการเรียนรู้ของเครื่อง

การแปลงภาพจากพื้นที่สีหนึ่งเป็นอีกพื้นที่หนึ่งมักจะใช้เพื่อให้พื้นที่สีที่เพิ่งได้รับสามารถพิสูจน์ได้ว่าเป็นอินพุตที่ดีกว่าเพื่อดำเนินการอื่น ๆ กับภาพนั้น ซึ่งรวมถึงการแยกเฉดสี ความส่องสว่าง ระดับความอิ่มตัวของสี และอื่นๆ เมื่อแสดงภาพโดยใช้การแสดง RGB แอตทริบิวต์ hue และ luminosity จะแสดงเป็นการผสมผสานเชิงเส้นของช่อง R, G และ B

เมื่อพยายามแปลงรูปภาพที่มีปริภูมิสี RGB เป็นระดับสีเทา ค่าพิกเซลจะถูกคำนวณเป็นผลรวมถ่วงน้ำหนักของพิกเซลสีแดง สีเขียว และสีน้ำเงิน แสดงสมการด้านล่าง -

Y = 0.2125 R + 0.7154 G + 0.0721 B

ตุ้มน้ำหนักเหล่านี้ได้รับการจัดเตรียมไว้โดยเฉพาะ เนื่องจากสารเรืองแสง CRT เหล่านี้ใช้ซึ่งแสดงถึงการรับรู้ของมนุษย์เกี่ยวกับสีแดง สีเขียว และสีน้ำเงินได้ดีกว่า เมื่อเทียบกับการให้น้ำหนักที่เท่ากันสำหรับทั้งสามค่า

ให้เราดูว่าภาพ RGB สามารถแปลงเป็นภาพระดับสีเทาได้อย่างไร -

ตัวอย่าง

from skimage import io
import matplotlib.pyplot as plt
from skimage import data
from skimage.color import rgb2gray
from skimage import data
path = "path to puppy_1.JPG"
orig_img = io.imread(path)
grayscale_img = rgb2gray(orig_img)
fig, axes = plt.subplots(1, 2, figsize=(8, 4))
ax = axes.ravel()
ax[0].imshow(orig_img)
ax[0].set_title("Original image")
ax[1].imshow(grayscale_img, cmap=plt.cm.gray)
ax[1].set_title("Grayscale image")
fig.tight_layout()
plt.show()

ผลลัพธ์

scikit-learn สามารถใช้แปลงรูปภาพจาก RGB เป็นระดับสีเทาใน Python ได้อย่างไร

คำอธิบาย

  • นำเข้าไลบรารีที่จำเป็น
  • เส้นทางที่จัดเก็บภาพถูกกำหนดไว้
  • ฟังก์ชัน 'imread' ใช้เพื่อเข้าชมเส้นทางและอ่านรูปภาพ
  • ใช้ฟังก์ชัน 'imshow' เพื่อแสดงรูปภาพบนคอนโซล
  • ฟังก์ชัน 'rgb2gray' ใช้เพื่อแปลงรูปภาพจากพื้นที่สี RGB เป็นพื้นที่สีระดับสีเทา
  • ไลบรารี matplotlib ใช้เพื่อพล็อตข้อมูลนี้ และแสดงรูปภาพต้นฉบับและรูปภาพหลังจากแปลงเป็นระดับสีเทา
  • แสดงบนคอนโซล