How to merge two images one over another?

1 次查看(过去 30 天)
Note
1 both are RGB's
2 black area iscompletely black i.e., RGB value is 0
Right now I am doing this:
But I am not satisfied with performance, in terms of time it is taking.
Can there be more efficient way?
  2 个评论
Adam
Adam 2018-7-3
im_blank > 0
is going to produce a 3-element vector on an RGB image.
JAI PRAKASH
JAI PRAKASH 2018-7-3
Yes, you are right.
My approach is accurate, but consumes more time.

请先登录,再进行评论。

采纳的回答

OCDER
OCDER 2018-7-3
I don't think you can go any faster at this point, unless zoom_image is a double. If so, then you can do
zoom_image = zoom_image.*(~mask) + imblank.*mask; % ~17% faster
When you reached the end of the code-based optimization, try parallel or GPU computing, or MEX/C++ to achieve faster speeds. I'm guessing GPU computing is the way to go since GPU is designed for image processing.
  2 个评论
JAI PRAKASH
JAI PRAKASH 2018-7-3
Hey OCDER
Thanx
Can u guide me how to speed up using me c++. Not exactly on above problem but generally how to use mex c++ to speed up calculation.
OCDER
OCDER 2018-7-3
Ah, that took me a while to get used to and I'm still learning tricks. The general idea is to make a "gateway" function that links matlab to C++. I started with this tutorial and looked at the example codes that matlab has.
It's a good investment as some of my codes have been sped up > 10 times, and GPU uses C language. When you get stuck on mex, ask us at the forum. The mvp's have more experience with mex coding.

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by