顯示具有 作業1] 標籤的文章。 顯示所有文章
顯示具有 作業1] 標籤的文章。 顯示所有文章

2020年3月17日 星期二

1061524 影像處理概論 作業1


1.作業說明:
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值
v (-255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。

2.使用環境:
Operation system: windows10
Programing language: Python 3.8.2
Library version: Opencv 4.2.0

3.程式流程:
(1) 使用 cv2.imread()將原始圖片傳入
(2) 使用者輸入v
(3) 使用 img.shape取得圖片的長寬
(4) 透過for迴圈進行每一個pixel的運算
(5) 將轉換好的圖片顯示並使用 cv2.imwrite()儲存

4.執行範例:

 (原始圖片-80)

 (原始圖片)


(原始圖片+80)

1051535 影像處理作業1

l   作業說明
圖像亮度調整
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (-255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。
l   環境
compiler: Visual studio 2017
language: C++
Library version: OpenCV 4.2.0
l   實作方法
使用imread來讀取圖片,imwrite存檔
使用channels()判斷圖片為灰階或全彩,1為灰階3為全彩
使用img.at<Vec3b>(y,x)來修改rgb像素值
利用迴圈將每個點的rgb像素加上輸入的值(+100,-100,+255,-255為例)
再用if判斷修改後像素值是否溢位,如小於0將像素值設為0,大於255則設為255

l   執行結果截圖:


+100









-100









+255
 









-255







2020年3月16日 星期一

1051427 影像處理概論1

作業說明:
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (-255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。

本次作業共有三張圖片輸出,第一張圖片為原始圖片,第二張圖片為使用opencv內建函數converTO將亮度增加50的輸出,第三張圖片為訪問各個pixel取值後增加RGB各50直到255

使用平台與工具: visual studio 2019 + openCV 3.4.8

圖中由左至右分別為第一張、第二張、第三張圖片

以下是兩種做法的code
第二張圖片:使用內建函數
image.convertTo(Cimage, -1, 1, n);

第三張圖片:訪問所有pixel後改值
for (int y = 0; y < rows; y++)
{
for (int x = 0; x < cols; x++)
{
Vec3b& pixel = image.at<Vec3b>(y, x);
for (int bgr = 0; bgr < 3; bgr++)//bgr
{
(pixel[bgr] + n <= 255) ? pixel[bgr] += n : pixel[bgr] = 255;
}
}
}

結果顯示兩者的輸出相同

1053301 影像處理作業 1

一、作業要求:
    1.圖像亮度調整:
    撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數
值 v(-255~255),並將圖像儲存至一個新圖像檔案中。
    2.如果輸入圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像 (RGB)
   改變每個像素的 R, G, B 值。請注意修改後像素值溢位問題 (<0 與>255)

二、使用工具:
    1.Visual Studio Code
    2.Python
      版本:3.7.3 32bit
    3.OpenCV
      版本:4.2.0

三、實作方法:
    1.先輸入像素值
    2.讀取指定的圖片
    3.判斷圖片是全彩還是灰階
    4.使用三層的迴圈,第一層跑Row,第二層跑Column,第三層跑每一個點的像素值
    5.儲存圖片

四、運行結果:
    1.原圖
    2.像素值加50
    3.像素值減50
    4.像素值加255(>255的話,只會 = 255)
    5.像素值減255(<0的話,只會 = 0)