खोज…


एक ठोस रंग के लिए पूरी छवि सेट करें

एक गैर-खाली cv::Mat img कुछ आकार के cv::Mat img को देखते हुए, हम इसे कई मायनों में एक ठोस रंग में भर सकते हैं:

img = cv::Scalar(blueVal,greenVal,redVal);

या, अधिक सामान्य, मास्क सपोर्टिंग, cv::Mat::setTo() :

img.setTo(cv::Scalar(blueVal,greenVal,redVal));

यदि आप IplImage* img साथ पुराने OpenCV C API का उपयोग कर रहे हैं:

उपयोग:

cvSet(img, CV_RGB(redVal,greenVal,blueVal));

छवियों के पिक्सेल संशोधन द्वारा पिक्सेल

OpenCV में, चित्र RGB / BGR, HSV, grayscaled, ब्लैक-व्हाइट और इतने पर हो सकते हैं। छवियों से निपटने से पहले डेटा प्रकार जानना महत्वपूर्ण है।

छवि डेटा प्रकार मुख्य रूप से CV_8UC3 (3 चैनलों के साथ uchar के मैट्रिक्स) और CV_8U (1 चैनल के साथ uchar के मैट्रिक्स) हैं, हालांकि, CV_32FC3, CV-64F जैसे अन्य प्रकार के रूपांतरण भी संभव हैं। ( डेटा प्रकार देखें)

विचार करें, छवि एक RGB छवि है जिसे imread फ़ंक्शन द्वारा पढ़ा जाता है।

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