Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Cách làm sáng ảnh bằng OpenCV trong VC++?

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    44

    Mặc định Cách làm sáng ảnh bằng OpenCV trong VC++?

    mình đang học opencv gio mình có một bức ảnh giờ mình muốn làm sáng nó lên bằng cách xử dụng thư viện opencv trogn c++ mình còn gà lắm nên không biết làm ai bít giúp mình nha thanks0

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    OpenCV không cung cấp sẵn function để làm việc này. Bạn hiểu cơ bản về xử lý ảnh bạn hoàn toàn có thể tự xây dựng chức năng dựa vào công thức: Công thức toán học Latex

    Trong đó
    - f(i,j) là ảnh gốc, g(i,j) là ảnh sau khi xử lý
    - Công thức toán học Latex là các tham số điều chỉnh

    Đây là ví dụ:
    C Code:
    1. #include <cv.h>
    2. #include <highgui.h>
    3. #include <iostream>
    4.  
    5. using namespace cv;
    6.  
    7. double alpha; /**< Simple contrast control */
    8. int beta;  /**< Simple brightness control */
    9.  
    10. int main( int argc, char** argv )
    11. {
    12.  /// Read image given by user
    13.  Mat image = imread( argv[1] );
    14.  Mat new_image = Mat::zeros( image.size(), image.type() );
    15.  
    16.  /// Initialize values
    17.  std::cout<<" Basic Linear Transforms "<<std::endl;
    18.  std::cout<<"-------------------------"<<std::endl;
    19.  std::cout<<"* Enter the alpha value [1.0-3.0]: ";std::cin>>alpha;
    20.  std::cout<<"* Enter the beta value [0-100]: "; std::cin>>beta;
    21.  
    22.  /// Do the operation new_image(i,j) = alpha*image(i,j) + beta
    23.  for( int y = 0; y < image.rows; y++ )
    24.     { for( int x = 0; x < image.cols; x++ )
    25.          { for( int c = 0; c < 3; c++ )
    26.               {
    27.       new_image.at<Vec3b>(y,x)[c] =
    28.          saturate_cast<uchar>( alpha*( image.at<Vec3b>(y,x)[c] ) + beta );
    29.              }
    30.     }
    31.     }
    32.  
    33.  /// Create Windows
    34.  namedWindow("Original Image", 1);
    35.  namedWindow("New Image", 1);
    36.  
    37.  /// Show stuff
    38.  imshow("Original Image", image);
    39.  imshow("New Image", new_image);
    40.  
    41.  /// Wait until user press some key
    42.  waitKey();
    43.  return 0;
    44. }

    Hãy tìm hiểu luật lệ tham gia cộng đồng C Việt trước khi viết bài tiếp theo nhé!
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

Các đề tài tương tự

  1. Định vị nhiều vị trí trong opencv?
    Gửi bởi dai trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 09-02-2015, 05:52 PM
  2. SVM trong OpenCV cho iOS có hỗ trợ không?
    Gửi bởi hoathuongphuoc trong diễn đàn Thắc mắc lập trình Objective-C
    Trả lời: 1
    Bài viết cuối: 20-11-2013, 08:59 AM
  3. Cách nhận dạng ảnh trong xử lý ảnh với opencv
    Gửi bởi jimhawkins trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 27-06-2012, 03:36 PM
  4. Cách sử dụng openCV trong Visual C++ có được không?
    Gửi bởi tldh.89 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 30-03-2012, 01:14 PM
  5. Sử dụng hàm SIFT của OpenCV trong VC++
    Gửi bởi ngothitim trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 18-03-2011, 08:24 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn