200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > OpenCV之BGR模式读取

OpenCV之BGR模式读取

时间:2020-10-15 14:59:20

相关推荐

OpenCV之BGR模式读取

BGR模式:

opencv 默认的读取的图片是按照BGR通道读取的,但是现在很多场景下使用的RGB。

Java代码:

本例仍采用JavaFX该平台作为展示平台,下面是Controller层内容:

public class Controller{@FXML private Text fxText;@FXML private ImageView imageView;@FXML public void handleButtonEvent(ActionEvent actionEvent) {Node source = (Node) actionEvent.getSource();Window theStage = source.getScene().getWindow();FileChooser fileChooser = new FileChooser();FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.png");fileChooser.getExtensionFilters().add(extFilter);fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("JPG Files(*.jpg)", "*.jpg"));File file = fileChooser.showOpenDialog(theStage);imageView.setImage(this.toBGR(file.getPath()));}private WritableImage toBGR(String filePath){System.loadLibrary(Core.NATIVE_LIBRARY_NAME);Imgcodecs imageCodecs = new Imgcodecs();String input = filePath;Mat src = imageCodecs.imread(input, Imgcodecs.IMREAD_COLOR);byte[] data = new byte[src.rows() * src.cols() * (int) (src.elemSize())];src.get(0, 0, data);BufferedImage bufImage = new BufferedImage(src.cols(), src.rows(), BufferedImage.TYPE_3BYTE_BGR);bufImage.getRaster().setDataElements(0, 0, src.cols(), src.rows(), data);WritableImage writableImage = SwingFXUtils.toFXImage(bufImage, null);return writableImage;}}

运行图:

注:原图来自于1972年11月期《花花公子》杂志模特Lenna,因其敏感性读者可自行上网搜索原图。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。