Arkadaşlar merhaba forumda yeni sayılırım elimdeki resimlerde 6-7 renk var Ben her defasında tek bir rengi bırakıp diğerlerini siyahmış gibi algılatıp ekranda gösteriyorum Fakat bunu her renk için bir programda yapamıyorum Bu yüzden aynı mantıktaki koddan 6-7 tane oluyor Bunu nasıl toparlayabilirim Ben şöyle bir şeyler yaptım Fakat kodun sonlarına doğru çuvalladım
#include
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
int main(int argc, char **argv)
{
cv::Mat img = cv::imread("0.png",0); // force greyscale
/* if(!img.data) {
std::cout << "File not found" << std::endl;
return -1;
}*/
cv::namedWindow("a");
cv::namedWindow("b");
cv::namedWindow("c");
cv::namedWindow("d");
cv::namedWindow("e");
cv::namedWindow("f");
cv::namedWindow("g");
for(int i = 0; i < img.rows; ++i) {
for(int j = 0; j < img.cols; ++j) {
int b=int(img.at(i,j)[0]);
int g=int(img.at(i,j)[1]);
int r=int(img.at(i,j)[2]);
if(b >= 150 && b < 220 && g >= 100 && g = 150 && r < 235){
img.at(i,j)[0] = 168;
img.at(i,j)[1] = 119;
img.at(i,j)[2] = 203;
}
else
{
img.at(i,j)[0] = 0;
img.at(i,j)[1] = 0;
img.at(i,j)[2] = 0;
}
if(b >= 190 && b < 255 && g >= 180 && g = 0 && r < 204){
img.at(i,j)[0] = 190;
img.at(i,j)[1] = 200;
img.at(i,j)[2] = 25;
}
else
{
img.at(i,j)[0] = 0;
img.at(i,j)[1] = 0;
img.at(i,j)[2] = 0;
}
if(b >= 0 && b < 80 && g >= 90 && g = 200 && r < 250){
img.at(i,j)[0] = 66;
img.at(i,j)[1] = 136;
img.at(i,j)[2] = 250;
}
else
{
img.at(i,j)[0] = 0;
img.at(i,j)[1] = 0;
img.at(i,j)[2] = 0;
}
if(b >= 85 && b < 135 && g >= 119 && g = 160 && r < 196){
img.at(i,j)[0] = 85;
img.at(i,j)[1] = 172;
img.at(i,j)[2] = 190;
}
else
{
img.at(i,j)[0] = 0;
img.at(i,j)[1] = 0;
img.at(i,j)[2] = 0;
}
if(b >= 0 && b < 180 && g >= 200 && g = 200 && r < 255){
img.at(i,j)[0] = 180;
img.at(i,j)[1] = 255;
img.at(i,j)[2] = 255;
}
else
{
img.at(i,j)[0] = 0;
img.at(i,j)[1] = 0;
img.at(i,j)[2] = 0;
}
if(b >= 190 && b < 220 && g >= 90 && g = 230 && r < 255){
img.at(i,j)[0] = 203;
img.at(i,j)[1] = 146;
img.at(i,j)[2] = 255;
}
else
{
img.at(i,j)[0] = 0;
img.at(i,j)[1] = 0;
img.at(i,j)[2] = 0;
}
if(b >= 0 && b < 80 && g >= 90 && g = 200 && r < 250){
img.at(i,j)[0] = 66;
img.at(i,j)[1] = 136;
img.at(i,j)[2] = 250;
}
else
{
img.at(i,j)[0] = 0;
img.at(i,j)[1] = 0;
img.at(i,j)[2] = 0;
}
if(b >= 57 && b < 135 && g >= 150 && g = 85 && r < 150){
img.at(i,j)[0] = 57;
img.at(i,j)[1] = 190;
img.at(i,j)[2] = 98;
}else
{
img.at(i,j)[0] = 0;
img.at(i,j)[1] = 0;
img.at(i,j)[2] = 0;
}
}
}
imshow("a",img);
imshow("b",img);
imshow("c",img);
imshow("kd",img);
imshow("e",img);
imshow("fl",img);
imshow("g",img);
cv::waitKey(0);
imwrite("a.png",img);
imwrite("b.png", img);
imwrite("c.png",img);
imwrite("c.png",img);
imwrite("d.png",img);
imwrite("e.png",img);
imwrite("f.png",img);
imwrite("g.png",img);
return 0;
}