Şimdi Ara

C programlama Dilinde Görüntü işleme yardım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
1.316
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • C programlama Dilinde Görüntü işleme yardımC programlama Dilinde Görüntü işleme yardım

    Hocamız bize böyle bir kod verdi dosyadan resim çekip histogramını çıkarmamızı istiyor. Anladığım kadarıyla grafik istiyor. Bunu visual Studioda yapılmasını istedi.



    < Bu mesaj bu kişi tarafından değiştirildi Mertt007 -- 1 Ağustos 2017; 17:23:27 >







  • Anlamadığınızı hocanıza sormaktan çekinmeyin. Hoca bunun için para alıyor. Sevabına girmiyor dersinize.
  • rukaplan R kullanıcısına yanıt
    abi gittim kaç kere kodları verdim kodları anlamaya çalış dedi. kodlardanda bişey çıkartamadım bakıyorum filename tanımlanmış fakat en sonda filename i çağırıyoruz çok saçma geldi işin içinden çıkamadım
  • hocanin verdigi kodlari kullanmak zorunda misin?
    opencv ile soyle bir sey yaptim belki isini gorur

    #include <opencv2/highgui.hpp>
    #include <opencv2/imgproc.hpp>


    int main(int argc, char** argv) {
    cv::Mat src = cv::imread("D:/2p.jpg", CV_LOAD_IMAGE_GRAYSCALE);

    if(!src.data){
    return -1;
    }
    cv::imshow("dosyadan aldigimiz image", src);

    cv::Mat greyscale;
    int hSize = 256;
    float range[] = {0, 255};
    const float *hRange = {range};

    cv::calcHist(&src, 1, 0, cv::Mat(), greyscale, 1 ,&hSize, &hRange, true, false);
    cv::Mat dst = cv::Mat::zeros(256, 256, CV_8UC3);
    cv::normalize(greyscale, greyscale, 0, greyscale.rows, cv::NORM_MINMAX, -1, cv::Mat());

    for(int i = 1; i < hSize; ++i){
    cv::Point p1(i-1, dst.rows - cvRound(greyscale.at<float>(i-1))*dst.rows/hSize);
    cv::Point p2(i, dst.rows);
    cv::line(dst, p1, p2, cv::Scalar(0, 255, 0), 2, 8, 0);
    }

    cv::imshow("graphic", dst);

    cv::waitKey(0);
    return 0;
    }

    C programlama Dilinde Görüntü işleme yardım



    < Bu mesaj bu kişi tarafından değiştirildi blackwar19 -- 4 Ağustos 2017; 12:40:41 >




  • blackwar19 kullanıcısına yanıt
    hocam tanımladığın kütüphaneleri nasıl tanımlıcan grafik falan çıkarmışsın nasıl yaptın.
  • quote:

    Orijinalden alıntı: Mertt007

    hocam tanımladığın kütüphaneleri nasıl tanımlıcan grafik falan çıkarmışsın nasıl yaptın.


    opencv kurulumu icin video
    https://www.youtube.com/watch?v=l4372qtZ4dc

    resmi aldiktan sonra calcHis fonksiyonu ile histogramini hesapliyorum. Elde ettigimiz ciktinin for dongusu icindeki line fonksiyonu ile grafigini cikartiyorum. eve gecince koda yorumlari eklerim


    cok genel sekilde yazmaya calistim

    #include <opencv2/highgui.hpp>
    #include <opencv2/imgproc.hpp>


    int main(int argc, char** argv) {
    //resmi siyah-beyaz sekilde dosyadan aliyoruz
    cv::Mat src = cv::imread("D:/2p.jpg", CV_LOAD_IMAGE_GRAYSCALE);
    //acip acamadigimiza bakiyoruz
    if(!src.data){
    return -1;
    }
    //okudugumuz resmi gosteriyoruz
    cv::imshow("dosyadan aldigimiz image", src);

    //histogram hesaplamda kullanilacak yeni bir resim containeri olusturuyoruz
    cv::Mat greyscale;

    //grafik icin rangeler
    int hSize = 256;
    float range[] = {0, 255};
    const float *hRange = {range};

    //greyscale objesine yukledigkmiz resmindeki yogun ve seyrek yerleri yazacak
    cv::calcHist(&src, 1, 0, cv::Mat(), greyscale, 1 ,&hSize, &hRange, true, false);

    //grafigin gosterilecegi resim. 256*256 boyutunda siyah bir resim.
    cv::Mat dst = cv::Mat::zeros(256, 256, CV_8UC3);

    //rangeleri ayarlamak icin
    cv::normalize(greyscale, greyscale, 0, greyscale.rows, cv::NORM_MINMAX, -1, cv::Mat());


    //grafigin dst resmine cizildigi kisim
    for(int i = 1; i < hSize; ++i){
    cv::Point p1(i-1, dst.rows - cvRound(greyscale.at<float>(i-1))*dst.rows/hSize);
    cv::Point p2(i, dst.rows);
    cv::line(dst, p1, p2, cv::Scalar(0, 255, 0), 2, 8, 0);
    }

    //grafigi ekrana basiyoruz
    cv::imshow("graphic", dst);

    //bir tus girilene kadar ekranda kalacak
    cv::waitKey(0);
    return 0;
    }



    < Bu mesaj bu kişi tarafından değiştirildi blackwar19 -- 4 Ağustos 2017; 17:4:9 >




  • pmden yazdım eve gidince musait olursaniz bir yazarmısnız sormak istediğim şeyler var.
  • blackwar19 kullanıcısına yanıt
    Tesekkur ederim. Bi kac bisey daha sormaj istiyorum grafigi cizerken elde ettigi degerleri ekrana yada baska bi yere yazma sansimiz var mi ?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.