#python code
import cv2
import numpy as np
def brightness1():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch05\\brightness\\lenna.bmp", cv2.IMREAD_GRAYSCALE)
if src is None:
print("Image load failed!")
return
dst = np.clip(src.astype(np.int32) + 100, 0, 255).astype(np.uint8)
cv2.imshow("src", src)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
def brightness2():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch05\\brightness\\lenna.bmp", cv2.IMREAD_GRAYSCALE)
if src is None:
print("Image load failed!")
return
dst = np.zeros(src.shape, dtype=np.uint8)
for j in range(src.shape[0]):
for i in range(src.shape[1]):
dst[j, i] = min(src[j, i] + 100, 255)
cv2.imshow("src", src)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
def brightness3():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch05\\brightness\\lenna.bmp", cv2.IMREAD_GRAYSCALE)
if src is None:
print("Image load failed!")
return
dst = cv2.add(src, 100)
cv2.imshow("src", src)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
def on_brightness(pos, userdata):
src = userdata
dst = cv2.add(src, pos)
cv2.imshow("dst", dst)
def brightness4():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch05\\brightness\\lenna.bmp", cv2.IMREAD_GRAYSCALE)
if src is None:
print("Image load failed!")
return
cv2.namedWindow("dst")
cv2.createTrackbar("Brightness", "dst", 0, 100, lambda pos: on_brightness(pos, src))
on_brightness(0, src)
cv2.waitKey()
cv2.destroyAllWindows()
def main():
brightness1()
brightness2()
brightness3()
brightness4()
if __name__ == "__main__":
main()
// C++ code
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
void brightness1();
void brightness2();
void brightness3();
void brightness4();
void on_brightness(int pos, void* userdata);
int main(void)
{
brightness1();
brightness2();
brightness3();
brightness4();
return 0;
}
void brightness1()
{
Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
Mat dst = src + 100;
imshow("src", src);
imshow("dst", dst);
waitKey();
destroyAllWindows();
}
void brightness2()
{
Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
Mat dst(src.rows, src.cols, src.type());
for (int j = 0; j < src.rows; j++) {
for (int i = 0; i < src.cols; i++) {
dst.at<uchar>(j, i) = src.at<uchar>(j, i) + 100;
}
}
imshow("src", src);
imshow("dst", dst);
waitKey();
destroyAllWindows();
}
void brightness3()
{
Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
Mat dst(src.rows, src.cols, src.type());
for (int j = 0; j < src.rows; j++) {
for (int i = 0; i < src.cols; i++) {
dst.at<uchar>(j, i) = saturate_cast<uchar>(src.at<uchar>(j, i) + 100);
}
}
imshow("src", src);
imshow("dst", dst);
waitKey();
destroyAllWindows();
}
void brightness4()
{
Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE);
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
namedWindow("dst");
createTrackbar("Brightness", "dst", 0, 100, on_brightness, (void*)&src);
on_brightness(0, (void*)&src);
waitKey();
destroyAllWindows();
}
void on_brightness(int pos, void* userdata)
{
Mat src = *(Mat*)userdata;
Mat dst = src + pos;
imshow("dst", dst);
}
C++ Code 출처 : OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 저




'OpenCV' 카테고리의 다른 글
ch06 arithmetic (0) | 2024.05.20 |
---|---|
ch05 contrast (0) | 2024.05.19 |
ch04 video (0) | 2024.05.19 |
ch04 utils (0) | 2024.05.19 |
ch04 trackbar (0) | 2024.05.19 |