#python
import cv2
import numpy as np
def color_op():
img = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch10\\ColorOp\\butterfly.jpg", cv2.IMREAD_COLOR)
if img is None:
print("Image load failed!")
return
pixel = img[0, 0]
b1, g1, r1 = pixel[0], pixel[1], pixel[2]
ptr = img[0]
b2, g2, r2 = ptr[0][0], ptr[0][1], ptr[0][2]
def color_inverse():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch10\\ColorOp\\butterfly.jpg", cv2.IMREAD_COLOR)
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]):
p1 = src[j, i]
p2 = dst[j, i]
p2[0] = 255 - p1[0] # B
p2[1] = 255 - p1[1] # G
p2[2] = 255 - p1[2] # R
cv2.imshow("src", src)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
def color_grayscale():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch10\\ColorOp\\butterfly.jpg")
if src is None:
print("Image load failed!")
return
dst = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
cv2.imshow("src", src)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
def color_split():
src = cv2.imread("D:\\projects\\SampleCode\\006939-master\\ch10\\ColorOp\\candies.png")
if src is None:
print("Image load failed!")
return
bgr_planes = cv2.split(src)
cv2.imshow("src", src)
cv2.imshow("B_plane", bgr_planes[0])
cv2.imshow("G_plane", bgr_planes[1])
cv2.imshow("R_plane", bgr_planes[2])
cv2.waitKey()
cv2.destroyAllWindows()
def main():
color_op()
color_inverse()
color_grayscale()
color_split()
if __name__ == "__main__":
main()
// C++
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
void color_op();
void color_inverse();
void color_grayscale();
void color_split();
int main(void)
{
color_op();
color_inverse();
color_grayscale();
color_split();
return 0;
}
void color_op()
{
Mat img = imread("butterfly.jpg", IMREAD_COLOR);
if (img.empty()) {
cerr << "Image load failed!" << endl;
return;
}
Vec3b& pixel = img.at<Vec3b>(0, 0);
uchar b1 = pixel[0];
uchar g1 = pixel[1];
uchar r1 = pixel[2];
Vec3b* ptr = img.ptr<Vec3b>(0);
uchar b2 = ptr[0][0];
uchar g2 = ptr[0][1];
uchar r2 = ptr[0][2];
}
void color_inverse()
{
Mat src = imread("butterfly.jpg", IMREAD_COLOR);
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++) {
Vec3b& p1 = src.at<Vec3b>(j, i);
Vec3b& p2 = dst.at<Vec3b>(j, i);
p2[0] = 255 - p1[0]; // B
p2[1] = 255 - p1[1]; // G
p2[2] = 255 - p1[2]; // R
}
}
imshow("src", src);
imshow("dst", dst);
waitKey();
destroyAllWindows();
}
void color_grayscale()
{
Mat src = imread("butterfly.jpg");
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
Mat dst;
cvtColor(src, dst, COLOR_BGR2GRAY);
imshow("src", src);
imshow("dst", dst);
waitKey();
destroyAllWindows();
}
void color_split()
{
Mat src = imread("candies.png");
if (src.empty()) {
cerr << "Image load failed!" << endl;
return;
}
vector<Mat> bgr_planes;
split(src, bgr_planes);
imshow("src", src);
imshow("B_plane", bgr_planes[0]);
imshow("G_plane", bgr_planes[1]);
imshow("R_plane", bgr_planes[2]);
waitKey();
destroyAllWindows();
}
C++ Code 출처 : OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 저



'OpenCV' 카테고리의 다른 글
ch11 adaptive (0) | 2024.05.21 |
---|---|
ch10 inrange (0) | 2024.05.21 |
ch10 coloreq (0) | 2024.05.21 |
ch10 backproj (0) | 2024.05.21 |
ch09 hough (0) | 2024.05.20 |