找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人尊貴會員無限看帖不用回覆儲值後自動升級用戶組
霹靂柯南幼女鬼滅之刃adobe無碼 ge流出
黑人魔法少女セリカマ百田光希仙劍百田光希神級影視

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]老夫老妻重返青春

[繁]無職轉生 第二季1

(4月新番)[簡]被稱為

[簡]Unnamed Memory

[繁]為美好的世界獻上

[繁]魔王學院的不適任
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 1959|回復: 7
打印上一主題下一主題

[問題]如何存照片上某一區塊的圖片?(DevC++&OpenCV)[複製鏈接]

帖子
0
積分
0 點
潛水值
930 米
跳轉到指定樓層
樓主
發表於 2009-12-28 08:49 AM|只看該作者|倒序瀏覽
我在照片上加了一個紅色框框,我想把紅色框框裡的圖另外顯示出來並存檔

我有想過用 Image1->imageData[j]來把圖的每個點抓出來放在Image2裡,不過我不會寫...

請問有人能幫我嗎~?

這是圖片

以下是源碼(這是用OpencCV在DevC++上寫的,OS是XP)

#include <stdio.h>
#include <stdlib.h>
#include <cv.h>
#include <highgui.h>
#include <cvcam.h>

IplImage *Image1;
void Paint_cross(IplImage *frame1);

int main()
{
    Image1 = cvLoadImage("bower.jpg",1);
    cvNamedWindow("Show Image",0);
    cvMoveWindow("Show Image",0,0);
    cvResizeWindow("Show Image",240,320);   
    Paint_cross(Image1);
    cvShowImage("Show Image",Image1);
   
    cvWaitKey(0);

    cvDestroyWindow("Show Image");
    cvReleaseImage(&Image1);   
}

void Paint_cross(IplImage *frame1)
{
     CvPoint PointArray1[4];
     CvScalar Color;
     int BlockNumber;
     int IsCycle;
     int Thickness;
     int Shift;
     
     CvPoint *PointArray[2]= {&PointArray1[0],&PointArray1[2]};

     PointArray[0][0]=cvPoint((frame1->width)/2-80,(frame1->height)/2+90);
     PointArray[0][1]=cvPoint((frame1->width)/2-80,(frame1->height)/2-90);
     PointArray[1][0]=cvPoint((frame1->width)/2+80,(frame1->height)/2-90);
     PointArray[1][1]=cvPoint((frame1->width)/2+80,(frame1->height)/2+90);
   
     int PolyVertexNumber[1]={4};
     BlockNumber=1;  
     IsCycle=1;   
     Color=CV_RGB(255,0,0);  
     Thickness=3;  
     Shift=0;  
     
     cvPolyLine(frame1,PointArray,PolyVertexNumber,BlockNumber,IsCycle,Color,Thickness,CV_AA,Shift);
}...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0

使用道具檢舉

帖子
632
積分
0 點
潛水值
12325 米
頭香
發表於 2009-12-28 10:00 AM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
本帖最後由 hst326 於 2009-12-28 10:07 AM 編輯

就先宣告下面的macro吧;
PIXEL(img , x, y);   // 可以拿來 讀寫  img (x,y)的 "灰階值";

write to image2 :  PIXEL(image2,x,y) = PIXEL(image1,x,y);

  1. #define PIXEL(img ,x ,y) ((uchar*)(img->imageData + img->widthStep*(y)))[(x)]
複製代碼


RGB的話就就把上面的改成下列

  1. #define PIXELB(img,x,y) ((uchar*)(img->imageData + img->widthStep*(y)))[(x)*3]
  2. #define PIXELG(img,x,y) ((uchar*)(img->imageData + img->widthStep*(y)))[(x)*3+1]
  3. #define PIXELR(img,x,y) ((uchar*)(img->imageData + img->widthStep*(y)))[(x)*3+2]
複製代碼
...
瀏覽完整內容,請先 註冊登入會員
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

帖子
0
積分
0 點
潛水值
930 米
3
發表於 2009-12-28 11:13 AM|只看該作者
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
你好,謝謝您的回覆!

我有一個問題, PIXEL(Image1,x,y); 裡面的x是代表橫向嗎?

然後我加了一些碼之後,Image1跟Image2顯示出來的圖都是灰色的,就像沒有圖片一樣...

怎麼會這樣呢?

以下是我改的程式碼 (部分)

#include <stdio.h>
#include <stdlib.h>
#include <cv.h>
#include <highgui.h>
#include <cvcam.h>
...
瀏覽完整內容,請先 註冊登入會員
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
1061
積分
1327 點
潛水值
4415 米
4
發表於 2009-12-28 01:09 PM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
本帖最後由 daviddr 於 2009-12-28 10:17 PM 編輯

假設區域範圍是 (x1,y1) - (x2,y2):
  1. cvSetImageROI (Image1, cvRect (x1,y1,x2,y2));
  2. Image2 = cvCreateImage
  3.     (cvGetSize (Image1), Image1->depth, Image1->nChannels);
  4. cvCopy (Image1, Image2);
  5. cvSave (path, Image2);
  6. cvResetImageROI (Image1);
複製代碼
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

帖子
0
積分
0 點
潛水值
930 米
5
發表於 2009-12-28 07:30 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
謝謝您,我大概懂了。

請問您知道有專門在討論影像方面的論壇嗎?




如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
1061
積分
1327 點
潛水值
4415 米
6
發表於 2009-12-28 10:13 PM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
OpenCV China
程式設計俱樂部 - 影像處理區
Delphi.ktop討論區
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 1

帖子
190
積分
113 點
潛水值
22457 米
7
發表於 2009-12-28 10:16 PM|只看該作者
你打上"昨日"搜尋
就有一個blog
這是有數學公式詳解還有運作方式
你說論壇
直接打上opencv就有一個超大的論壇
試試看吧!我不知道是不是你需要的!
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 2Rank: 2

帖子
1656
積分
290 點
潛水值
18342 米
8
發表於 2010-6-11 12:17 AM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
上面的大大真的都好厲害喔....OPENCV造福很多人了喔....強押....
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部