İki resmim var, diğeri diğerinden daha küçük. İkinci görüntüyü ilk görüntüye kopyalamam gerekiyor. Bunu yapmak için ilk önce ROI'yi ayarlamalı, ikinci resmi ilk görüntüye kopyalamalı ve ardından ROI'yi sıfırlamalıyım.OpenCV'de ROI nasıl ayarlanır?
Ancak C++ arabirimini kullanıyorum, bu yüzden nasıl yapılacağını bilmiyorum. C'de cvSetImageROI kullanmış olabilirdim, ancak bu C++ arabiriminde çalışmıyor.
Temel olarak cvSetImageROI için C++ alternatifi nedir?
//output is a pointer to the mat whom I want the second image (colourMiniBinMask) copied upon
Rect ROI (478, 359, 160, 120);
Mat imageROI (*output, ROI);
colourMiniBinMask.copyTo (imageROI);
imshow ("Gravity", *output);
Bkz. Http://stackoverflow.com/questions/7041181/equivalent-to-cvsetimageroi-in-the-opencv-c-interface –
Bunu zaten denedim. Hata görmüyorum, ancak YG'yi ayarladığım görüntü etkilenmiyor - aynı kalıyor. Görüntünün o kısmının bir kopyasına erişmekten ziyade bir kopyasını alıyorum. (Bence). – fdh
copyTo işlevi, src ve dst matrislerinin biçimi eşleşmezse (yani, src = BGR, dst = BGRA) içeriği yeniden oluşturur. Bu durumda "imageROI.data" yeniden tahsis edilecek ve işaretçinin adresinin değiştirileceğini göreceksiniz. Öte yandan, imageROI başlığı aynı kalacaktır. Bu gibi durumlarda mixChannels, birleştirme veya cvtColor işlevlerini kullanın. – vahapt