国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Android基于OpenCV實現圖像修復

瀏覽:3日期:2022-09-18 09:08:24
目錄圖像修復API操作效果源碼圖像修復

實際應用中,圖像常常容易受損,如存在污漬的鏡頭、舊照片的劃痕、人為的涂畫(比如馬賽克),亦或是圖像本身的損壞。將受到損壞的圖像盡可能還原成原來的模樣的技術,稱之為圖像修復。所謂修復,就代表圖像大部分內容是完好的,所以,圖像修復的原理,就是用完好的部分去推斷受損部分的信息,特別是完好部分與受損部分的交界處,即受損區域的邊緣,在這個推斷過程中尤為重要。

OpenCV給我們提供了inpaint方法來實現這個功能,并提供了兩種圖像修復的算法:

基于Navier-Stokes的修復方法 基于圖像梯度的快速匹配方法又稱Telea法 API

參數一:src,輸入圖像,類型為8位,16位無符號或32位浮點單通道或8位三通道。參數二:inpaintMask,修復掩碼,8位單通道圖像。非零像素表示需要修補的區域。參數三:dst,輸出圖像,與src大小類型相同。參數四:inpaintRadius,算法考慮的每個點的圓形鄰域的半徑。參數五:flags,修復方法標志位。

public static final intINPAINT_NS = 0, // 基于Navier-Stokes的方法INPAINT_TELEA = 1, // 基于圖像梯度的快速匹配方法又稱Telea法操作

/** * 圖像修復 * author: yidong * 2020/11/28 */class InPaintActivity : AppCompatActivity() { private val mBinding: ActivityInPaintBinding by lazy {ActivityInPaintBinding.inflate(layoutInflater) } private lateinit var mRgb: Mat override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(mBinding.root)mRgb = Mat()val bgr = Utils.loadResource(this, R.drawable.whiteprint)Imgproc.cvtColor(bgr, mRgb, Imgproc.COLOR_BGR2RGB)mBinding.ivLena.showMat(mRgb)doInPaint() } private fun doInPaint() {val gray = Mat()val mask = Mat()Imgproc.cvtColor(mRgb, gray, Imgproc.COLOR_RGB2GRAY)Imgproc.threshold(gray, mask, 254.0, 255.0, Imgproc.THRESH_BINARY)val kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, Size(20.0, 20.0))Imgproc.dilate(mask, mask, kernel)val dst = Mat()Photo.inpaint(mRgb, mask, dst, 5.0, Photo.INPAINT_TELEA)mBinding.ivResult.showMat(dst) }}效果

原圖圖中右下角存在文字,通過圖像修復技術,實現去掉文字內容效果。類似操作可用于去掉水印。代碼中的參數,根據實際需要進行調整。

Android基于OpenCV實現圖像修復

源碼

github.com/onlyloveyd/…

以上就是Android基于OpenCV實現圖像修復的詳細內容,更多關于Android OpenCV圖像修復的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
主站蜘蛛池模板: 肇东市| 蓬溪县| 唐海县| 望谟县| 隆德县| 西昌市| 上饶县| 东宁县| 迁安市| 珲春市| 九寨沟县| 和硕县| 安庆市| 清丰县| 万荣县| 莒南县| 鹤峰县| 龙泉市| 文山县| 平利县| 白河县| 资溪县| 金川县| 宜兴市| 西藏| 息烽县| 大庆市| 元江| 广灵县| 班玛县| 永春县| 吉木乃县| 崇文区| 双辽市| 长丰县| 兴化市| 和林格尔县| 衡东县| 珠海市| 新丰县| 疏附县|