c++的入門學習問題

最近在c語言的學習上遇到了困難

我所使用的程式為Microsoft Visual Studio 的系統c++

在實務上需要用到,不過時間也沒多少想必這次是無法達成目標,就拿到網上請各位有經驗的老師來解答一下.

問題是這樣的

要製作程式來讓兩個圖片有所差別,

1.Unsharp Masking

2.Max-Min sharpening transform

這兩個希望能有人能寫成筆記本或txt,不然用c++的內裝檔案.cpp傳到我信箱也可以

答案並不是重點 但是希望能用//的綠色標記,在後面寫代表的意義或者為什麼這樣寫.

來幫助小弟入門學習.

另外感謝各位花時間看這邊求學文

本人信箱 bigsgsgsgsg@gmail.com

5 Answers

Rating
  • Tai
    Lv 5
    7 years ago
    Favorite Answer

    版大, 是不是作業差很多呢. 作業會被要求從二維動態陣列到 Gaussian kernel 都自己寫; 專題可用 open source code 省力氣; 工作得用公司 library. 而綠色註解可能是版大裝了 VAssitX, 否則 VC++ 註解預設值也不綠. 總之不是作業的話建議 OpenCV, 功能強範例也超多.

    Unsharp mask: http://opencv-code.com/quick-tips/sharpen-image-wi...

    MMS: 一時找不到, 若接受opencv 那我就寫吧

    2013-11-08 05:59:20 補充:

    既然我推薦了 opencv, 就斗膽寫了.

    #include <opencv2\core\core.hpp>

    using namespace cv;

    void unSharpen(Mat im)

    {

    // cite from: http://opencv-code.com/quick-tips/sharpen-image-wi...

    Mat blurred;

    GaussianBlur(im, blurred, cv::Size(5,5), 5);

    addWeighted(im, 1.5, blurred, -0.5, 0, im); // im = 1.5*im - 0.5*blurred + 0*im

    }

    void maxminTransform(Mat im, int kw, int iterations)

    {

    // algorithm: http://zh.scribd.com/doc/6924405/18/Max-Min-Sharpe...

    for (int it = 0; it < iterations; ++it)

    {

    Mat s(im.size(), im.type());

    for (Point p(0,0); p.y < im.rows; ++p.y)

    {

    for (p.x = 0; p.x < im.cols; ++p.x)

    {

    /*

    for each pixel, do max-min-sharpen

    1. find the max & min value in the neighborhood of p

    Ma = max{ im(q): q belongs to N(p) }

    ma = min{ im(q): q belongs to N(p) }

    where N(p) is the neighborhood of p

    */

    int Ma = -1, ma = 255;

    for (int y = p.y-kw; y <= p.y+kw; ++y)

    for (int x = p.x-kw; x <= p.x+kw; ++x)

    {

    if (y < 0 || y >= im.rows) continue;

    if (x < 0 || x >= im.cols) continue;

    Point q(x,y);

    int a = im.at<uchar>(q);

    if (a > Ma) Ma = a;

    else if (a < ma) ma = a;

    }

    /* 2.

    s(p) =

    Ma,if (Ma - im(p)) <= (im(p) - ma)

    ma, otherwise

    */

    int v = im.at<uchar>(p);

    if ( (Ma - v) <= (ma - v))

    s.at<uchar>(p) = Ma;

    else

    s.at<uchar>(p) = ma;

    }

    }

    imshow("max-min transform", s); waitKey(1); // show the image for you

    s.copyTo(im);

    }

    }

    int main()

    {

    Mat im = imread("beach2.png");

    Mat us = im.clone();

    unSharpen(us);

    imshow("unSharpen", us);

    Mat mmt;

    cvtColor(im, mmt, CV_BGR2GRAY); // RGB color 無從判定大小, 轉成 Gray

    maxminTransform(mmt, 2, 3); // (2+1)*(2+1) kernel, 作三次

    imshow("max-min transform", mmt);

    waitKey(0); // show image windows until any key-press

    return 1;

    }

    2013-11-09 21:18:23 補充:

    那早說嘛. A 大貌似也是作影像, 那些他一定知道, 只是你要求寄到信箱, 好像是直接索取作業答案, 犯了知識+規矩. 直說就見諒了。

    2013-11-09 21:39:04 補充:

    為了說明這裡用了低效方法. 像是 Mat::at(), 能免則免, 先提醒一下.

    Source(s): 不是老師
  • Anonymous
    7 years ago

    想到這行上班的妹妹,可以先加我的聯絡方式,

    我們先聊聊,我會了解一下妳想入行的原因跟妳目前的情況

    這樣東昱才能知道要怎麼幫助小姐,也方便為小姐們規劃。在來就是為小姐們做簡單的市場分析,讓妳瞭解之後,在讓妳考慮自己是否有入行的需要。

    不會去欺騙或免強妳做妳不願意的事情之後,接下來就是碰個面、做個簡單的面試。酒店工作主要還是依照外在條件、去區分妳適合上的店家,所以面試必要的喔。

    這樣才可以為你做更準確的分析,在見面的過程裡我會依照妳的外型和妳所希望的程度,

    提供適合妳的店家,讓妳去做選擇。

    參考資料:

    酒店小姐&酒店經紀酒店上班實錄

  • Anonymous
    7 years ago

    全台唯一合法博弈網站隆重登場

    中獎彩金領取僅需5分鐘立刻到手

    快來免費試試手氣吧!

    官方網站 aa777.net

  • 7 years ago

    如果您不會 沒有關係 不過請不要在這裡打擾了,

    1.程式碼內容以及註解

    2.一般城市的註解最多為綠色

    3.如果您不知道就別浪費各自的時間

    4.有困難不瞭解才拿來問,問題擺在眼前你都不知道

    5.這絕對不是作業,你連 Unsharp Masking都不知道,還談作業?

    2013-11-07 16:26:51 補充:

    這是鄙人學習Microsoft Visual Studio 的進程,不過之前完全沒有經驗,希望能從中直接學習.

    2013-11-09 20:44:41 補充:

    目前確實在用OpenCV練習, 目前正在尋找有效的資料學習中.

    如果有較為推薦的書籍還請多指教 感謝您的幫助

  • How do you think about the answers? You can sign in to vote the answer.
  • 卸貨
    Lv 5
    7 years ago

    1. C++內裝檔案是什麼?

    2. 誰規定 // 標記是綠色的?

    3. 你能不能先說明 Unsharp Masking 和 Max-Min sharpening transform 的內容?

    2013-11-07 07:38:31 補充:

    4. 你在 C 語言的學習上遇到什麼困難?

    2013-11-07 07:41:55 補充:

    5. 這明明就是作業吧?

Still have questions? Get your answers by asking now.