c++ Kodları tek bir kodla toplama

sanane2
17-05-2015, 20:35   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
3 mesaj
Kayıt Tarihi:Kayıt: Mar 2015

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;

}