我是圖像處理和開發新手。我有一個圖像的像素座標。通過連接每個座標可以得到一個三角形。我想提取給定座標像素內的像素(三角形內的像素)提取給定座標內的像素
座標如下。
1(x,y) -> (146 , 548)
2(x,y) -> (155, 548)
3(x,y) -> (149.6 , 558.1)
我如何拍攝以上座標入站的像素。任何幫助表示讚賞。謝謝。
我是圖像處理和開發新手。我有一個圖像的像素座標。通過連接每個座標可以得到一個三角形。我想提取給定座標像素內的像素(三角形內的像素)提取給定座標內的像素
座標如下。
1(x,y) -> (146 , 548)
2(x,y) -> (155, 548)
3(x,y) -> (149.6 , 558.1)
我如何拍攝以上座標入站的像素。任何幫助表示讚賞。謝謝。
您應該在圖像上敷面膜。
示例代碼:
首先,你應該載入圖片:
//load default image
Mat image = cv::imread("/home/fabio/code/lena.jpg", cv::IMREAD_GRAYSCALE);
然後創建你的形象口罩和應用三角點到面罩。
//mask image definition
cv::Mat mask = cv::Mat::zeros(image.size(), image.type());
//triangle definition (example points)
vector<Point> points;
points.push_back(Point(100,70));
points.push_back(Point(60,150));
points.push_back(Point(190,120));
//apply triangle to mask
fillConvexPoly(mask, points, Scalar(255));
之後,你的面具看起來就像這樣:
最後創建應用掩碼原始圖像最終圖像:
//final image definition
cv::Mat finalImage = cv::Mat::zeros(image.size(), image.type());
image.copyTo(finalImage, mask);
結果:
這是你在找什麼?
yap這是正確的。謝謝你進一步我怎麼可以只帶三角形沒有背景。 – Alan
有一個線索在談論這個問題,給出的解決方案很容易適用於您的案例,只是替換所提供示例中使用的形狀。
首先使用drawContours方法繪製三點輪廓,然後使用該圖像作爲蒙版來提取像素。 – hariprasad
@hariprasad你能解釋一下嗎? – Alan