[英]How to convert Color of a Rectangle (ROI) in a matrix with OpenCV Java?
我正在嘗試使用以下代碼使用OpenCV Java轉換矩陣的ROI中的顏色
public Mat detect(Mat image){
Rect roi = new Rect(new Point(50, 50), new Point(image.width() - 50, image.height() - 50));
Mat mask = image.submat(roi);
Mat temp = new Mat();
Imgproc.cvtColor(mask, temp, Imgproc.COLOR_BGRA2GRAY,0);
temp.copyTo(mask);
return image;
}
但結果與給定圖像相同。 如果我使用Imgproc.medianBlur()效果更改Imgproc.cvtColor()調用,例如:
...
Imgproc.medianBlur(mask, temp, 11);
...
有一個模糊的矩形可見。 我認為在Imgproc.cvtColor()的過程中,對原始圖像的引用被一些新創建的替換。 那么我怎樣才能在不丟失引用的情況下轉換矩陣中ROI的顏色呢?
我感謝任何幫助,謝謝!
PS:我想添加一些樣本圖片,但我的聲譽不夠高。 對此我很抱歉,希望你能想象我的問題,即使沒有樣品。
您不能擁有圖像,即第 1 部分頻道,否則為4頻道。
模糊示例工作正常,因為它沒有改變頻道數量。
在復制之前,你必須再次將你的灰色(子)img轉換為rgba
Mat temp = new Mat();
Imgproc.cvtColor(mask, temp, Imgproc.COLOR_BGRA2GRAY,0);
Mat temp_rgba = new Mat();
Imgproc.cvtColor(temp, temp_rgba, Imgproc.COLOR_GRAY2BGRA,0);
temp_rgba.copyTo(mask);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.