opencv
이미지 콘텐츠 수정
수색…
전체 이미지를 단색으로 설정
어떤 크기의 비어 있지 않은 cv::Mat img
가 주어지면 여러 가지 방법으로 단색으로 채울 수 있습니다 :
img = cv::Scalar(blueVal,greenVal,redVal);
또는보다 일반적인 마스크 지원, cv::Mat::setTo()
:
img.setTo(cv::Scalar(blueVal,greenVal,redVal));
이전 OpenCV C API를 IplImage* img
와 함께 사용하는 경우 :
용도:
cvSet(img, CV_RGB(redVal,greenVal,blueVal));
이미지의 픽셀 수정에 의한 픽셀
OpenCV에서 이미지는 RGB / BGR, HSV, 회색 음영, 흑백 등이 될 수 있습니다. 이미지를 다루기 전에 데이터 유형을 아는 것이 중요합니다.
이미지 데이터 타입은 주로 CV_8UC3
(3 채널의 uchar 행렬)과 CV_8U (1 채널의 uchar 행렬)이지만 CV_32FC3, CV_64F와 같은 다른 유형으로의 변환도 가능합니다. ( 데이터 유형 참조)
이미지는 imread
함수가 읽는 RGB 이미지입니다.
Mat rgb = imread('path/to/rgb/image', CV_LOAD_IMAGE_COLOR);
//to set RED pixel value of (i,j)th to X,
rgb.at<Vec3b>(i,j)[0] = X;
유사하게, 이미지가 그레이 스케일링되면,
gray.at<uchar>(i,j) = X;
OpenCV에서 흑백 이미지는 값이 0과 255 인 CV_8U 유형으로 저장됩니다. 따라서 BW 이미지 변경은 회색 이미지와 동일합니다.
OpenCV에서 이미지 색상 수정 - kmeans (). 이미지의 모든 픽셀을 스캔하고 픽셀 값을 일반 색상으로 바꿉니다.
#include opencv2/opencv.hpp> #include vector> using namespace std; using namespace cv; int main() { Mat3b img = imread("test.jpg"); z
}
imshow("Original", img); // Cluster int K = 8; int n = img.rows * img.cols; Mat data = img.reshape(1, n); data.convertTo(data, CV_32F); Mat labels; Mat1f colors; kmeans(data, K, labels, cv::TermCriteria(), 1, cv::KMEANS_PP_CENTERS, colors); for (int i = 0; i < n; ++i) { data.at<float>(i, 0) = colors(labels.at<int>(i), 0); data.at<float>(i, 1) = colors(labels.at<int>(i), 1); data.at<float>(i, 2) = colors(labels.at<int>(i), 2); } Mat reduced = data.reshape(3, img.rows); reduced.convertTo(reduced, CV_8U); imshow("Reduced", reduced); waitKey(0); return 0;
#include opencv2/opencv.hpp> #include vector> using namespace std; using namespace cv; int main() { Mat3b img = imread("test.jpg");
z
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow