国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔


前言

使用opencv對(duì)圖像處理時(shí),可能需要對(duì)圖像按位操作,而opencv自帶位操作運(yùn)算函數(shù),不必再手寫遍歷算法,位操作函數(shù)包括:
bitwise_and
bitwise_or
bitwise_not
bitwise_xor 異或


mask

關(guān)于掩膜mask請(qǐng)點(diǎn)擊查看

\newline

像素按位操作函數(shù)

1. bitwise_and

src1src2每個(gè)像素的像素值按位與,比如某位置對(duì)應(yīng)兩個(gè)像素值分別為:23185,則輸出像素值為17,因?yàn)?code>23,185的二進(jìn)制分別為10111,10111001,按位與得到1000117。

/* 輸入 src1,src2,可為灰度圖或彩色圖,src1 和 src2 大小需一樣;
** 輸出 dst,尺寸和類型與 src 保持一致;
** 掩膜 mask,可通俗理解為一個(gè)遮罩,只對(duì) mask 設(shè)定的有效區(qū)域進(jìn)行操作;
*/
void bitwise_or(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray());

\newline
src1如下圖:
OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)

\newline

src2如下圖:

OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)

\newline

bitwise_and效果如下圖:

OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)

2. bitwise_or

src1src2每個(gè)像素的像素值按位或,比如某位置對(duì)應(yīng)兩個(gè)像素值分別為:23185,則輸出像素值為191,因?yàn)?code>23,185的二進(jìn)制分別為10111,10111001,按位或得到10111111191。

/* 輸入 src1,src2,可為灰度圖或彩色圖,src1 和 src2 大小需一樣;
** 輸出 dst,尺寸和類型與 src 保持一致;
** 掩膜 mask,可通俗理解為一個(gè)遮罩,只對(duì) mask 設(shè)定的有效區(qū)域進(jìn)行操作;
*/
void bitwise_and(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray());

\newline

bitwise_o效果r如下圖:

OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)

3. bitwise_not

src 像素的像素值按位取非,比如某像素值為:23,則輸出像素值為232,因?yàn)?code>23的二進(jìn)制為10111,按位取反得到11101000232

/* 輸入 src 可為灰度圖或彩色圖;
** 輸出 dst,尺寸和類型與 src 保持一致;
** 掩膜 mask,可通俗理解為一個(gè)遮罩,只對(duì) mask 設(shè)定的有效區(qū)域進(jìn)行操作;
*/
void bitwise_not(InputArray src, OutputArray dst, InputArray mask = noArray());

\newline

bitwise_not效果如下圖:

OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)

4. bitwise_xor

src1src2每個(gè)像素的像素值按位異或,比如某位置對(duì)應(yīng)兩個(gè)像素值分別為:23185,則輸出像素值為177,因?yàn)?code>23,185的二進(jìn)制分別為10111,10111001,按位異或得到10101110174。

/* 輸入 src1,src2,可為灰度圖或彩色圖,src1 和 src2 大小需一樣;
** 輸出 dst,尺寸和類型與 src 保持一致;
** 掩膜 mask,可通俗理解為一個(gè)遮罩,只對(duì) mask 設(shè)定的有效區(qū)域進(jìn)行操作;
*/
void bitwise_xor(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray());

\newline
bitwise_xor效果如下圖:

OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)

5.帶掩膜操作

例如將src1中人頭取反,其他保持不變,代碼如下:

#include <opencv2/opencv.hpp>

using namespace cv;

int main() {
  Mat src1 = imread("img1.png", IMREAD_GRAYSCALE);
  Mat src2 = imread("img2.png", IMREAD_GRAYSCALE);
  cv::resize(src1, src1, Size(640, 480));
  cv::resize(src2, src2, Size(640, 480));
  imshow("src1", src1);
  imshow("src2", src2);
  // 將mask中包含人頭的區(qū)域像素值設(shè)為255
  Mat mask = Mat::zeros(Size(640, 480), CV_8UC1);
  mask(Rect(320, 50, 260, 310)) = 255;

  Mat dst;
  // 只對(duì)人頭取反
  bitwise_not(src1, dst, mask);
  imshow("mask1", mask);
  // 將mask反轉(zhuǎn),得到新的mask
  bitwise_not(mask, mask);
  imshow("mask2", mask);
  // 將src1中人頭之外的區(qū)域拷貝到dst
  src1.copyTo(dst, mask);
  imshow("dst", dst);
  waitKey();

  return 0;
}

結(jié)果如下:

OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)

mask1

\newline
OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)
mask2

\newline
OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)
dst

\newline

總結(jié)

主要記錄bitwise_and,bitwise_or,bitwise_notbitwise_xor的作用,幫助理解與使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-454290.html

到了這里,關(guān)于OpenCV:對(duì)圖像的位操作bitwise_and(與),bitwise_or(或),bitwise_not(非),bitwise_xor(異或)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • TypeError: ufunc ‘bitwise_and‘ not supported for the input types, and the inputs could not be safely

    這個(gè)錯(cuò)誤是因?yàn)槟褂昧诉壿嬤\(yùn)算符來執(zhí)行按位與(bitwise and)運(yùn)算,而它不適用于浮點(diǎn)數(shù)類型的輸入數(shù)據(jù)。 要比較兩個(gè)浮點(diǎn)數(shù)是否在一個(gè)范圍內(nèi),您可以使用邏輯運(yùn)算符and,或者使用numpy庫中的logical_and函數(shù)。具體地,您可以按照以下方式更改代碼: 1.使用邏輯運(yùn)算符and來替代

    2024年02月14日
    瀏覽(89)
  • 【Python】【OpenCV】視頻幀和攝像頭幀操作 and 窗口顯示

    一、讀取寫入視頻文件 ? 二、捕獲攝像頭幀 和視頻的讀取寫入沒有什么差異,都是需要先創(chuàng)建一個(gè)VideoCapture Object來操作,下述是細(xì)微差別: 3? ?Line:VideoCapture(0),其中 0 代表設(shè)備,還可以1,2,3 分別代表不同的攝像頭(如果存在),也可以輸入網(wǎng)絡(luò)攝像頭,直接替換成

    2024年02月05日
    瀏覽(24)
  • 【計(jì)算機(jī)視覺—python 】 圖像處理入門教程 —— 圖像屬性、像素編輯、創(chuàng)建與復(fù)制、裁剪與拼接【 openCV 學(xué)習(xí)筆記 005 to 010 and 255】

    【計(jì)算機(jī)視覺—python 】 圖像處理入門教程 —— 圖像屬性、像素編輯、創(chuàng)建與復(fù)制、裁剪與拼接【 openCV 學(xué)習(xí)筆記 005 to 010 and 255】

    OpenCV中讀取圖像文件后的數(shù)據(jù)結(jié)構(gòu)符合Numpy的ndarray多維數(shù)組結(jié)構(gòu),因此 ndarray 數(shù)組的屬性和操作方法可用于圖像處理的一些操作。數(shù)據(jù)結(jié)構(gòu)如下圖所示: img.ndim:查看代表圖像的維度。彩色圖像的維數(shù)為3,灰度圖像的維度為2。 img.shape:查看圖像的形狀,代表矩陣的行數(shù)(高

    2024年01月19日
    瀏覽(104)
  • opencv 基礎(chǔ)圖像操作-彩色圖像

    opencv 基礎(chǔ)圖像操作-彩色圖像

    在 RGB 色彩空間中,存在 R(red,紅色)通道、G(green,綠色)通道和 B(blue,藍(lán) 色)通道,共三個(gè)通道。每個(gè)色彩通道值的范圍都在[0, 255]之間,我們用這三個(gè)色彩通道的組 合表示顏色。 以比較通俗的方式來解釋就是,有三個(gè)油漆桶,分別裝了紅色、綠色、藍(lán)色的油漆,我

    2024年02月16日
    瀏覽(21)
  • 05- OpenCV:圖像操作和圖像混合

    05- OpenCV:圖像操作和圖像混合

    目錄 一、圖像操作 1、讀寫圖像 2、讀寫像素 3、修改像素值 4、Vec3b與Vec3F 5、相關(guān)的代碼演示 二、圖像混合 1、理論-線性混合操作 2、相關(guān)API(addWeighted) 3、代碼演示(完整的例子) 一、圖像操作 1、讀寫圖像 (1)imread 可以指定加載為灰度或者RGB圖像 (2)Imwrite 保存圖像文件

    2024年02月01日
    瀏覽(23)
  • OpenCV基本圖像處理操作(一)——圖像基本操作與形態(tài)學(xué)操作

    OpenCV基本圖像處理操作(一)——圖像基本操作與形態(tài)學(xué)操作

    圖像顯示 轉(zhuǎn)hsv圖像 顏色表示為三個(gè)組成部分:色調(diào)(Hue)、飽和度(Saturation)和亮度(Value)。常用于圖像處理中,因?yàn)樗试S調(diào)整顏色的感知特性,如色彩和亮度,這些在RGB顏色模型中不那么直觀。 HSV模型特別適用于任務(wù)如圖像分割和對(duì)象追蹤,因?yàn)樗梢愿玫靥幚砉?/p>

    2024年04月22日
    瀏覽(166)
  • OpenCV基本操作——圖像的基礎(chǔ)操作

    OpenCV基本操作——圖像的基礎(chǔ)操作

    注:opencv圖像坐標(biāo)系中,左上角是原點(diǎn),y軸向下,x軸向右,單位像素點(diǎn) 有時(shí)需要在B,G,R通道圖像上單獨(dú)工作。在這種情況下,需要將BGR圖像分割成單個(gè)通道?;蛘咴谄渌闆r下,可能需要將這些單獨(dú)的通道合并到BGR圖像 opencv中有150多種顏色空間轉(zhuǎn)換方法。最廣泛使用的轉(zhuǎn)

    2024年02月13日
    瀏覽(196)
  • OpenCV圖像變換操作

    圖像縮放: 按比例縮放: 圖像翻轉(zhuǎn): 沿X軸翻轉(zhuǎn): 沿Y軸翻轉(zhuǎn): 同時(shí)沿X軸、Y軸翻轉(zhuǎn): 圖像旋轉(zhuǎn):

    2024年01月23日
    瀏覽(16)
  • openCV圖像的讀寫操作

    如果圖像是灰度圖像(通道數(shù)為1),則使用.at(row, col)來訪問像素值,并將像素值取反后寫回圖像 如果圖像是彩色圖像(通道數(shù)為3),則使用.at(row, col)來訪問像素值。將每個(gè)通道的像素值取反后寫回圖像 對(duì)于灰度圖像,使用指針current_row指向當(dāng)前行的數(shù)據(jù)指針,然后通過*

    2024年02月14日
    瀏覽(13)
  • Opencv簡單圖像操作

    Opencv簡單圖像操作

    1.imshow CV_LOAD_IMAGE_UNCHANGED,這個(gè)標(biāo)識(shí)在新版本中被廢置了,忽略。 CV_LOAD_IMAGE_ANYDEPTH- 如果取這個(gè)標(biāo)識(shí)的話,若載入的圖像的深度為16位或者32位,就返回對(duì)應(yīng)深度的圖像,否則,就轉(zhuǎn)換為8位圖像再返回。 CV_LOAD_IMAGE_COLOR- 如果取這個(gè)標(biāo)識(shí)的話,總是轉(zhuǎn)換圖像到彩色一體 CV_LOAD_

    2024年02月20日
    瀏覽(12)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包